이것저것/낙서장

[phpschool 펌]접속자의 국가를 알아내서 해당 국기로 표시하기

tornado 2005. 1. 14. 10:47

글쓴이:Qindex 접속자의 국가를 알아내서 해당 국기로 표시하기조회수:854

http://qindex.info

아래 아이피 대역에 관한 글에 코멘트를 잠깐 달았는데 물어보시는 분이 있어 자세히 올립니다.
=================================================================================

http://ip-to-country.webhosting.info/node/view/5

먼저 ip-country.csv.zip파일을 다운받아서 압축을 풉니다.
범위가 50,000개가 넘으니 상당히 정확한 것으로 생각됩니다.
ip-country.csv파일은 다음과 같은 형식으로 되어 있습니다.

"0033996344","0033996351","GB","GBR","UNITED KINGDOM"
"0050331648","0083886079","US","USA","UNITED STATES"
"0094585424","0094585439","SE","SWE","SWEDEN"

각 칼럼값은,

0033996344: IP address 범위의 시작
0033996351: IP address 범위의 끝
GB: ISO 3166에 의한 두글자 국가코드
GBR: ISO 3166에 의한 세글자 국가코드
UNITED KINGDOM: ISO 3166에 의한 국가이름

입니다.
여기서 범위값은 만약 IP address가 A.B.C.D인 경우
A x (256*256*256) + B x (256*256) + C x 256 + D가 됩니다.
이 데이터를 DB에 입력한 후 접속자의 아이피와 대조해서 접속자 국가를 알아냅니다.

접속자의 국가를 국기로 표시하려고 하면 flags파일을 내려받아서 이용합니다.
(http://ip-to-country.webhosting.info/node/view/91)

적용사례는 http://www.qindex.info/Q_frame.php?s_clss=stts_show 입니다