Tag Archives: 지역

mod_geoip 설치하고 사용해 보기

어플리케이션을 개발하거나 혹은 좀더 정밀한 사용자들의 로그 정보를 쌓고 싶을때 필요한 것이 국가 정보입니다.

물론 전세계를 대상으로 하는 서비스라면 이점이 더욱 더 중요해 지겠죠.

MaxMind라는 회사에서 제공하는 GeoIP Extension의 경우 매우 유용한 프로그램입니다.

여러가지 경로의 사용이 가능하지만 그중에 가장 강력한 퍼포먼스로 선호하는 Apache 모듈로 설치해 보도록 하겠습니다.

설치에 앞서 필요한것은 다음과 같습니다.

GeoIP C Library, GeoIP mod_geoip (Apache1, Apache2)

1. C Library 설치하기
[code]# tar -zxvf GeoIP-1.4.6.tar.gz
# cd GeoIP-1.4.6
# ./configure
# make
# make install[/code]

2. mod_geoip 설치하기
[code]# apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c[/code]

3. httpd.conf에 모듈이 정상적으로 추가되었는지 확인
[code]LoadModule geoip_module       modules/mod_geoip.so[/code]

4.httpd.conf에 모듈 설정 추가
[code]<IfModule mod_geoip.c>
    GeoIPEnable On
    GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat
</IfModule>[/code]

5. GeoIP 데이터 베이스 추가&업데이트하기
첫 설치시에 GeoIP.dat가 설치되어있지만 다음에서 데이터베이스를 다운받아 최신으로 업데이트 해봅시다.
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

[code]# gzip -d GeoIP.dat.gz
# gzip -d GeoLiteCity.dat.gz
 
# mv GeoIP.dat /usr/local/share/GeoIP/GeoIP.dat
# mv GeoLiteCity.dat /usr/local/share/GeoIPCity.dat[/code]

6. City 정보까지 필요할 경우 httpd.conf 설정의 GeoIPDBFile을 다음과 같이 수정
[code]GeoIPDBFile /usr/local/share/GeoIP/GeoIPCity.dat[/code]

아파치등에서의 사용법은 [이곳]을 참고하시고, PHP와 같은 언어에서는 다음과 같이 정보를 얻어올 수 있습니다.

[code]<%
$country_code = apache_note(“GEOIP_COUNTRY_CODE”);
$country_name = apache_note(“GEOIP_COUNTRY_NAME”);
%>[/code]
사용자 삽입 이미지위의 그림은 phpinfo()를 실행했을 경우의 결과값 입니다. 데이터가 정상적으로 잘 나오는 것을 알 수 있습니다.