apache2 mod_geoip 적용

아래 사이트에서 최신 버전 확인후 wget으로 파일 다운로드 한다.


http://geolite.maxmind.com/download/geoip/


wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz


wget http://geolite.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.5.tar.gz


wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz


tar zxvf GeoIP-1.4.6.tar.gz


cd GeoIP-1.4.6


./configure


make;make check;make install


tar zxvf mod_geoip2_1.2.5.tar.gz


cd mod_geoip2_1.2.5


apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c


gzip -d GeoLiteCity.dat.gz


mv GeoLiteCity.dat /etc/httpd/conf.d/


httpd.conf 파일 적절한 곳에 아래 내용을 넣는다 (중국, romania 전체 차단 및 나머지 모든 국가 허용 예제)



<IfModule mod_geoip.c>
 GeoIPEnable On
 GeoIPDBFile /etc/httpd/conf.d/GeoLiteCity.dat
<Location />
           SetEnvIf GEOIP_COUNTRY_CODE CN drop
           SetEnvIf GEOIP_COUNTRY_CODE RO drop
           <Limit GET POST>
             Order Allow,Deny
             Allow from all
             Deny from env=drop
           </Limit>
</Location>
</IfModule>



참고 : GeoIP 테스트 코드


#include <GeoIP.h>



int main (int argc, char *argv[]) {


  GeoIP * gi;


  gi = GeoIP_new(GEOIP_STANDARD);


  printf(”code %s\n”,


    GeoIP_country_code_by_name(gi, “yahoo.com”));


}



위 소스 코드 복사해서 test.c 로 이름 붙여 gcc -lGeoIP test.c 컴파일후 ./a.out 실행했을때  아래와 같이 나오면 정상



[root@localhost GeoIP-1.4.6]# ./a.out


code US


만약 에러 난다면 ldconfig 설정 확인할것(/usr/local/lib dir이 들어 있어야한다)


아래는 국가별 코드표


http://www.maxmind.com/app/iso3166


코멘트 쓰기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



배송정보
배송조회를 하시려면 송장번호를 클릭하세요
배송조회
상품명
주문번호
택배사
송장번호