복붙노트

IP 주소에서 위치 가져 오기

PHP

IP 주소에서 위치 가져 오기

나는 자신의 위치에 따라 웹 페이지를 사용자 정의 할 수 있도록 IP 주소에서 방문자의 도시, 주 및 국가와 같은 정보를 검색하려고합니다. PHP에서이 작업을 수행 할 수있는 신뢰할 수있는 좋은 방법이 있습니까? 저는 클라이언트 측 스크립팅을위한 JavaScript, 서버 측 스크립팅을위한 PHP 및 데이터베이스 용 MySQL을 사용하고 있습니다.

해결법

  1. ==============================

    1.무료 GeoIP 데이터베이스를 다운로드하고 로컬에서 IP 주소를 조회하거나 타사 서비스를 사용하여 원격 조회를 수행 할 수 있습니다. 이것은 설정이 필요 없기 때문에 더 간단한 옵션이지만 추가적인 대기 시간을 발생시킵니다.

    무료 GeoIP 데이터베이스를 다운로드하고 로컬에서 IP 주소를 조회하거나 타사 서비스를 사용하여 원격 조회를 수행 할 수 있습니다. 이것은 설정이 필요 없기 때문에 더 간단한 옵션이지만 추가적인 대기 시간을 발생시킵니다.

    사용할 수있는 제 3의 서비스는 내 것, http://ipinfo.io입니다. 호스트 이름, 위치 정보, 네트워크 소유자 및 추가 정보를 제공합니다 (예 :

    $ curl ipinfo.io/8.8.8.8
    {
      "ip": "8.8.8.8",
      "hostname": "google-public-dns-a.google.com",
      "loc": "37.385999999999996,-122.0838",
      "org": "AS15169 Google Inc.",
      "city": "Mountain View",
      "region": "CA",
      "country": "US",
      "phone": 650
    }
    

    다음은 PHP 예제입니다.

    $ip = $_SERVER['REMOTE_ADDR'];
    $details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));
    echo $details->city; // -> "Mountain View"
    

    클라이언트 쪽에서 사용할 수도 있습니다. 다음은 간단한 jQuery 예제입니다.

    $ .get ( "https://ipinfo.io/json", function (response) {     $ ( "# ip"). html ( "IP :"+ response.ip);     $ ( "# address"). html ( "위치 :"+ response.city + ","+ response.region);     $ ( "# details") .html (JSON.stringify (response, null, 4)); }, "jsonp");