728x90
반응형
먼저 GeoIP 데이터베이스를 다운로드하고 PHP에서 사용할 수 있도록 설치해야 합니다. GeoIP 데이터베이스를 다운로드하려면 MaxMind 사이트(https://dev.maxmind.com/geoip/geoip2/geolite2/)에서 무료 버전인 GeoLite2 데이터베이스를 다운로드하면 됩니다. 다운로드한 파일을 압축 해제한 후, PHP에서 사용할 수 있도록 geoip 라이브러리를 설치해야 합니다. geoip 라이브러리는 PECL(PHP Extension Community Library)을 통해 설치할 수 있습니다.
설치가 완료되면 다음과 같은 코드를 사용하여 IP 주소로 국가와 도시를 가져올 수 있습니다.
// GeoIP 데이터베이스 파일 경로 설정
$database = "/path/to/GeoLite2-City.mmdb";
// IP 주소 가져오기
$ip = $_SERVER['REMOTE_ADDR'];
// GeoIP 데이터베이스 라이브러리 로드
require_once("geoip2.phar");
// 데이터베이스 생성
use GeoIp2\Database\Reader;
$reader = new Reader($database);
// IP 주소로 국가와 도시 가져오기
try {
$record = $reader->city($ip);
$country = $record->country->name;
$city = $record->city->name;
} catch (Exception $e) {
// 에러 처리
$country = "Unknown";
$city = "Unknown";
}
// 결과 출력
echo "국가: " . $country . "<br/>";
echo "도시: " . $city . "<br/>";
위 코드에서는 IP 주소를 $_SERVER['REMOTE_ADDR']로부터 가져와서, GeoIP 데이터베이스 파일 경로를 설정하고 데이터베이스를 생성합니다. 그리고 city() 함수를 사용하여 IP 주소로부터 국가와 도시를 가져옵니다. 가져오는 도중에 오류가 발생하면 $country와 $city 변수에 "Unknown"을 할당합니다. 마지막으로, 결과를 출력합니다.
위 코드를 사용하면 IP 주소로부터 국가와 도시를 쉽게 알아낼 수 있습니다. 다만, GeoIP 데이터베이스는 업데이트가 자주 이루어져야 하며, 정확도가 100% 보장되지는 않습니다.
정확도 100%를 원하시면 GeoIP 유료버전을 사용하세요.
728x90
반응형
'코딩 > PHP' 카테고리의 다른 글
php 첫번째 문자열 대문자로 변경 (0) | 2023.07.07 |
---|---|
[PHP] post방식 뒤로가기시 만료된 페이지 해결 (0) | 2023.03.22 |
[PHP] PHP에서 SQL Injection 공격을 방어하기 (0) | 2023.03.22 |
[PHP] html 태그 제거 (0) | 2022.12.01 |
[PHP] 정규식을 이용해서 img 태그 없애고 src값만 가져오기 (0) | 2022.12.01 |