1763 번 글의 답장글: Re: inet_aton() and ini_ntoa() 문의 |
글쓴이: 산이
[홈페이지]
|
글쓴날: 2003년 11월 08일 20:20:16 토(저녁) |
조회: 897 |
[고석철]님이 남기신 글:
>안녕하세요.
>제목과 관련하여 문의하오니 알려 주시면 감사하겠습니다.
>
>1. CountryStats 디비자료가 한국을 제외하고 ntoa()형식으로
저장되어 있기에 운영자님의 한국 ip를 ntoa() 형식으로 디비에
올리려는데, aton() 형식을 어떻게 변환할 수 있을까요?
aton(); // `address to number' 맞나요?
ipv4 => '192.168.0.1'; // string
이라면, 이것은
ipv4 => 192 *(255*255*255) + 168 * (255*255) + 0 * (255) + 1; //unsigned long
이 됩니다.
디비에 저장된 자료가 어떤 형태인지 샘플로 좀 알 수
있을까요?
http://ftp.ind.net/pub/mirrors/ftp.redhat.com/redhat/linux/6.2/de/do
c/HOWTOS/translations/ko/translations/socketbeej
에 관련 C 예제가 있네요. 제가 C 언처 깡통이라서... T.T
요즘은 FreeBSD 공부중이라서 다른 분야에 신경을 많이
못씁니다..T.T
PHP 에서는
(string) ipv4 <--> (long) ipv4
[string --> long 일 경우]
$ipv4 = sprintf('%u',ip2long((string)$ipv4));
[long --> string 일 경우]
$ipv4 = long2ip((integer)$ipv4);
본 php 클래스에서는 getnetwork() 맴버함(메소드)에
있습니다.
AND 연산을 위해서 '%u' 대신 '%b' binaray 형태로 바꾸어서 연산했을
뿐입니다.
>
>2. 운영자님이 작성하신 ipv4.php, korea_ip_address.txt는
php 웹서버에서 어떻게 사용할 수 있는지요?
>
접속한 클라이언트 IP 주소가 한국 IP 주소인지 아닌지를
판별하는데 사용됩니다.
즉 클라이언트 IP 주소하고 global subnet 를 하나씩 ADN 연산하여
그
결과가 한국의 global network 주소에 있다면 한국 IP 주소로
간주하는 아주 간단한 계산입니다.
계산을 간단하게(speed up)하기 위해서 global subnet 으로 미리
계산해
놓은것입니다.
PHP class 소스 :
http://linuxchannel.net/?vhost=phps&php[src]=%2Ffunc%2Fclass.ipv4.ph
## [example]
##
## echo ipv4::iskrip('192.168.10.3'); // 2
## echo ipv4::iskrip(gethostbyname('www.linuxchannel.net')); // 1
## echo ipv4::iskrip($_SERVER['REMOTE_ADDR']); // FALSE or 1 or 2
##
## echo ipv4::network('192.168.10.3'); // 192.168.0.0/255.255.0.0
## echo ipv4::network('192.100.10.3'); // 192.0.0.0/255.0.0.0
## echo ipv4::network($_SERVER['REMOTE_ADDR']); // FALSE or some string
##
본 홈페이지 초기화면 상단 중앙쯤에
your global ip-network
61.248.0.0/255.248.0.0(61.254.75.40)
이런 메시지가 나올겁니다.
61.248.0.0/255.248.0.0 이것은 한국에서 사용하는
global network / global subnet 입니다.
() 안은 클라이언트 IP 주소이고요.
만약 한국이 아닌 다른 외국 IP 호스트에서 본 홈페이지를
접속한다면
이런 메시지는 볼 수 없습니다.
>감사합니다.
혹시 제가 질문 취지를 잘못알고 남의 다리를 긁은것 같은
느낌이 드네요.......... ^.^
|
이전글 : inet_aton() and ini_ntoa() 문의
다음글 : Re: Re: inet_aton() and ini_ntoa() 문의
|
from 61.254.75.40
JS(Redhands)Board 0.4 +@
|