XE, DB를 통한 국가별 IP 차단

서버 2016. 12. 21. 19:25


준비물 1 국가별 IP 대역 정보 CSV

https://dev.maxmind.com/geoip/legacy/geolite/


준비물 2 XE 국가별 접속 제한 애드온 by prologos

https://www.xpressengine.com/?mid=download&package_id=22752234




준비물 1은 간간히 갱신되므로 심심할때마다 새로 받아서 DB에 반영해주면 좋다.

파일 수정이 필요한지 아닌진 기억이 안 나지만 난 아무튼 약간 수정해서 사용한당.



선택한 컬럼 3개 삭제- 그리고 저장

왠지 IP를 삭제하는 것 같지만 실제로 사용할 대역 정보는 옆에 int 값으로 똑같이 있다.





이제 준비물 2 애드온을 까보면 geoip라는 테이블에서 minip 컬럼, maxip 컬럼을 이용해 뭔가를 찾는 것을 확인할 수 있다.

phpmyadmin이든 뭐든 db로 접속해서 xe 데이터베이스에 "xe_geoip" 테이블을 추가하고 (xe 자체 쿼리 기능을 쓰는 것 같은데 geoip라고 하면 안 될 것 같다.)

컬럼 3개를 만든다. minip, maxip, country_code(마지막건 아무 이름이나 상관 없을라나... 몰러 그냥 이대로 쓰자)

앞에 두 놈은 bigint(20) 뒤에 놈은 char(2). null 없음으로.. 적당히 적당히



그리고 xe_geoip 테이블에서 csv 파일을 가져오기한다.

내용이 많아서 시간 약간 걸림.

뭔가 안되면 구분자가 , 로 되어있는지 확인


그리고 XE에 애드온을 설치해서 적당히 설정해서 잘 쓴다. 끝.

IP 조회 방법 DB로 설정하는 걸 잊지 않긔




IIS geoblock module 쓰고 싶었지만 안 된다.

그냥 겁나 안 된다. 몇 번이고 다시 시도해봐도 안된다.

그래서 XE 애드온을 쓴다!

설정

트랙백

댓글