첨부파일은 위의 출처 사이트에서 제공하는 CSV형식의 2007년 3월 5일자 자료입니다.
시간에 따라 자료가 변함으로 최신 파일은
을 통해 다운 받으시기 바랍니다.
CSV파일의 형식은 다음과 같습니다.
"0033996344","0033996351","GB","GBR","UNITED KINGDOM"
"0050331648","0083886079","US","USA","UNITED STATES"
"0094585424","0094585439","SE","SWE","SWEDEN"
차례대로
IP 주소 범위의 시작
IP 주소 범위의 끝
ISO 3166을 기반으로 한 2자리 국가 문자 코드
ISO 3166을 기반으로 한 3자리 국가 문자 코드
ISO 3166을 기반으로 한 국가 이름
와 같습니다.
여기서
IP 주소 범위에 사용된 숫자는 다음과 같이 계산된 값입니다.
IP가 A.B.C.D 와 같이 표시 되었다면
IP 주소 = A x (256*256*256) + B x (256*256) + C x 256 + D
= A x 16777216 + B x 65536 + C x 256 + D
으로 계산된 값입니다.
어떤 IP주소를 알았다면 그 IP를 위의 계산식에 대입하여 CSV파일의 IP주소 범위에서 포함되는 나라를 찾으면 됩니다.
PHP4에서는 이러한 방식으로 IP를 서로 변환하는
$ip_number = sprintf("%u",
ip2long($dotted_ip_address));
$dotted_ip_address =
long2ip($ip_number);
함수를 제공합니다.
DB에
| FIELD |
DATA TYPE |
FIELD DESCRIPT-xION |
| IP_FROM |
NUMERICAL (DOUBLE) |
Beginning of IP address range. |
| IP_TO |
NUMERICAL (DOUBLE) |
Ending of IP address range. |
| COUNTRY_CODE2 |
CHAR(2) |
Two-character country code based on ISO 3166. |
| COUNTRY_CODE3 |
CHAR(3) |
Three-character country code based on ISO 3166. |
| COUNTRY_NAME |
VARCHAR(50) |
Country name based on ISO 3166 |
이런 형태의 Table을 만들고
와 같은 형태로 검색할 수 있습니다.