geoipxe
XE의 모듈에서 빠른 속도의 Geo IP 서버를 사용할 수 있도록 하기 위해 제작했습니다.
자료 분류 | 모듈 | 0 / 0 | |
---|---|---|---|
라이선스 | GPL v3 | ||
제작자 | 큰돌♡ | ||
홈페이지 | www.kndol.net | ||
설치 경로 | ./modules/geoipxe | ||
최초 등록일 | 2019-04-11 00:00 | 전체 다운로드 | 0 |
최근 버전 | 0.1.1 |
다운로드
|
|
다운로드 | 0 | ||
최근 업데이트 | 2019-04-11 00:00 | 0 / 0 | |
DB는 https://lite.ip2location.com/ 에서 제공하는 무료 DB를 사용합니다. 무료 데이터는 rough한 데이터라 일부 IP에 대해서는 부정확한 결과를 가져오지만, 대충 사용하기에는 괜찮을 겁니다. https://lite.ip2location.com/ 에서는 여러 타입의 DB를 제공하는데, 그중 DB1과 DB3 타입에 IPv4, IPv6 버전을 지원합니다. 웹 호스팅을 사용하는 경우라면 아마 여러가지 이유로 DB1밖에 사용할 수 없을 겁니다. DB1은 국가 정보만 제공하고, DB3는 국가, 지역, 도시의 3가지 정보를 제공합니다. 일반적으로 DB1 IPv4만 설치해도 기본 기능은 사용할 수 있습니다. DB는 본 자료에 포함되어 있지 않고, https://lite.ip2location.com/ 에서 직접 다운로드 받아 서버에서 지원하는 SQL 툴(phpMyAdmin 등)을 사용해서 직접 설치해야 합니다.
아래에서는 phpMyAdmin을 사용하여 DB1 IPv4를 설치하는 법만 설명하겠습니다. 다른 툴에서도 비슷한 방법으로 설치가 될 것이라 생각합니다.
변경 사항 2019.4.11 - PHP 7.2 버전 호환성 문제 수정
어드민 페이지 사용할 DB 타입 지정과 제대로 설치됐는지 확인할 수 있는 간단한 페이지입니다.
설치법 1. geoipxe 모듈을 ./modules/geoipxe 디렉토리에 설치합니다. 2. 관리자 페이지에 접속해서 DB 테이블 만들기를 진행합니다. 3. https://lite.ip2location.com/ 에 접속합니다. 4. DB1.LITE 또는 DB3.LITE를 선택합니다.
5. IPV4 CSV를 선택합니다.
6. 가입하라는 페이지가 나오는데, 가입하기 싫으면 하단의 Not now, ... 를 선택합니다.
7. IP2LOCATION-LITE-DB1.CSV.ZIP 파일과 IP2LOCATION-LITE-DB1.IPV6.CSV.ZIP 파일을 다운로드한 후 압축을 풉니다.
8. phpMyAdmin에서 xe_geoipxe_db1_v4 테이블로 가서 Import를 선택합니다. 설치하려는 DB 종류에 따라 xe_geoipxe_db1_v6, xe_geoipxe_db3_v4, xe_geoipxe_db3_v6 테이블을 각각 선택해야 합니다. (DB 파일과 테이블이 맞지 않으면 설치가 안 됩니다.)
9. [찾아보기...] 버튼을 클릭해서 CSV 파일을 선택합니다.
10. 불러올 포맷으로 CSV를 선택하고, 필드 구분자는 ,(콤마)인지 확인합니다. 만약 최초 설치가 아닌 업데이트된 DB를 재설치하는 경우라면 '파일로 테이블 대치하기'를 체크하면 됩니다. [실행] 버튼을 클릭해서 설치합니다.
11. 원하는 DB를 모두 설치하면 XE 관리자 모듈의 geoipxe 설정 페이지에 가서 제대로 동작하는지 확인합니다.
API
geoipxe는 XE 모듈의 php 코드에서 호출하거나 웹 페이지에서 JavaScript로 호출할 수 있습니다.
1. PHP에서 사용 $oGeoipxeModel = &getModel('geoipxe');
if ($oGeoipxeModel && method_exists($oGeoipxeModel, 'getGeoipxeDataFromIP')) { $config = $oGeoipxeModel->getGeoipxeConfig(); $location = $oGeoipxeModel->getGeoipxeDataFromIP($IP); $country_code = $location->country_code; $country = $location->country; if ($config->db_type == 'db3') { $region = $location->region; $city = $location->city; } }
2. JavaScript에서 사용 $.exec_json('geoipxe.dispGeoipxeData', {ip:IP}, function(ret_obj) { var country_code = ret_obj.location.country_code; var country = ret_obj.location.country; var city = ret_obj.location.city != undefined ? ret_obj.location.city : ''; var region = ret_obj.location.region != undefined ? ret_obj.location.region : ''; }, function(error) { // 에러 처리 } ); 이 자료는 XE 공식 자료실에서 자동으로 다운로드한 자료입니다. 원본 : [공식 자료실 게시글로 이동] |