복붙노트

방문자의 국가에서 IP를 얻는 방법

PHP

방문자의 국가에서 IP를 얻는 방법

나는 그들의 IP를 통해 방문자 국가를 얻고 싶다 ... 지금 나는 이것을 사용하고있다 (http : //api.hostip.info/country.php? ip = ......)

여기 내 코드가 있습니다 :

<?php

if (isset($_SERVER['HTTP_CLIENT_IP']))
{
    $real_ip_adress = $_SERVER['HTTP_CLIENT_IP'];
}

if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
    $real_ip_adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
    $real_ip_adress = $_SERVER['REMOTE_ADDR'];
}

$cip = $real_ip_adress;
$iptolocation = 'http://api.hostip.info/country.php?ip=' . $cip;
$creatorlocation = file_get_contents($iptolocation);

?>

음, 제대로 작동하고 있지만 문제는 미국 또는 캐나다와 같은 국가 코드가 아니라 미국 또는 캐나다와 같은 국가 코드를 반환한다는 것입니다.

그래서, hostip.info에 대한 좋은 대안이 있습니까?

나는 결국이 두 글자를 전체 이름으로 바꾸는 코드를 작성할 수 있다는 것을 알고 있지만, 나는 모든 국가를 포함하는 코드를 작성하기에는 너무 게을 리다.

추신 : 어떤 이유로 든 준비된 제작 된 CSV 파일이나 ip2country 준비 코드 및 CSV와 같은 정보를 얻을 수있는 코드를 사용하고 싶지 않습니다.

해결법

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

    1.이 간단한 PHP 함수를 사용해보십시오.

    이 간단한 PHP 함수를 사용해보십시오.

    <?php
    
    function ip_info($ip = NULL, $purpose = "location", $deep_detect = TRUE) {
        $output = NULL;
        if (filter_var($ip, FILTER_VALIDATE_IP) === FALSE) {
            $ip = $_SERVER["REMOTE_ADDR"];
            if ($deep_detect) {
                if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP))
                    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
                if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP))
                    $ip = $_SERVER['HTTP_CLIENT_IP'];
            }
        }
        $purpose    = str_replace(array("name", "\n", "\t", " ", "-", "_"), NULL, strtolower(trim($purpose)));
        $support    = array("country", "countrycode", "state", "region", "city", "location", "address");
        $continents = array(
            "AF" => "Africa",
            "AN" => "Antarctica",
            "AS" => "Asia",
            "EU" => "Europe",
            "OC" => "Australia (Oceania)",
            "NA" => "North America",
            "SA" => "South America"
        );
        if (filter_var($ip, FILTER_VALIDATE_IP) && in_array($purpose, $support)) {
            $ipdat = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" . $ip));
            if (@strlen(trim($ipdat->geoplugin_countryCode)) == 2) {
                switch ($purpose) {
                    case "location":
                        $output = array(
                            "city"           => @$ipdat->geoplugin_city,
                            "state"          => @$ipdat->geoplugin_regionName,
                            "country"        => @$ipdat->geoplugin_countryName,
                            "country_code"   => @$ipdat->geoplugin_countryCode,
                            "continent"      => @$continents[strtoupper($ipdat->geoplugin_continentCode)],
                            "continent_code" => @$ipdat->geoplugin_continentCode
                        );
                        break;
                    case "address":
                        $address = array($ipdat->geoplugin_countryName);
                        if (@strlen($ipdat->geoplugin_regionName) >= 1)
                            $address[] = $ipdat->geoplugin_regionName;
                        if (@strlen($ipdat->geoplugin_city) >= 1)
                            $address[] = $ipdat->geoplugin_city;
                        $output = implode(", ", array_reverse($address));
                        break;
                    case "city":
                        $output = @$ipdat->geoplugin_city;
                        break;
                    case "state":
                        $output = @$ipdat->geoplugin_regionName;
                        break;
                    case "region":
                        $output = @$ipdat->geoplugin_regionName;
                        break;
                    case "country":
                        $output = @$ipdat->geoplugin_countryName;
                        break;
                    case "countrycode":
                        $output = @$ipdat->geoplugin_countryCode;
                        break;
                }
            }
        }
        return $output;
    }
    
    ?>
    

    사용하는 방법:

    예 1 : 방문자 IP 주소 세부 정보 가져 오기

    <?php
    
    echo ip_info("Visitor", "Country"); // India
    echo ip_info("Visitor", "Country Code"); // IN
    echo ip_info("Visitor", "State"); // Andhra Pradesh
    echo ip_info("Visitor", "City"); // Proddatur
    echo ip_info("Visitor", "Address"); // Proddatur, Andhra Pradesh, India
    
    print_r(ip_info("Visitor", "Location")); // Array ( [city] => Proddatur [state] => Andhra Pradesh [country] => India [country_code] => IN [continent] => Asia [continent_code] => AS )
    
    ?>
    

    예 2 : 모든 IP 주소의 세부 정보 얻기. [지원 IPV4 및 IPV6]

    <?php
    
    echo ip_info("173.252.110.27", "Country"); // United States
    echo ip_info("173.252.110.27", "Country Code"); // US
    echo ip_info("173.252.110.27", "State"); // California
    echo ip_info("173.252.110.27", "City"); // Menlo Park
    echo ip_info("173.252.110.27", "Address"); // Menlo Park, California, United States
    
    print_r(ip_info("173.252.110.27", "Location")); // Array ( [city] => Menlo Park [state] => California [country] => United States [country_code] => US [continent] => North America [continent_code] => NA )
    
    ?>
    
  2. ==============================

    2.http://www.geoplugin.net/의 간단한 API를 사용할 수 있습니다.

    http://www.geoplugin.net/의 간단한 API를 사용할 수 있습니다.

    $xml = simplexml_load_file("http://www.geoplugin.net/xml.gp?ip=".getRealIpAddr());
    echo $xml->geoplugin_countryName ;
    
    
    echo "<pre>";
    foreach ($xml as $key => $value)
    {
        echo $key , "= " , $value ,  " \n" ;
    }
    echo "</pre>";
    

    사용 된 기능

    function getRealIpAddr()
    {
        if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
        {
          $ip=$_SERVER['HTTP_CLIENT_IP'];
        }
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
        {
          $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        else
        {
          $ip=$_SERVER['REMOTE_ADDR'];
        }
        return $ip;
    }
    

    산출

    United States
    geoplugin_city= San Antonio
    geoplugin_region= TX
    geoplugin_areaCode= 210
    geoplugin_dmaCode= 641
    geoplugin_countryCode= US
    geoplugin_countryName= United States
    geoplugin_continentCode= NA
    geoplugin_latitude= 29.488899230957
    geoplugin_longitude= -98.398696899414
    geoplugin_regionCode= TX
    geoplugin_regionName= Texas
    geoplugin_currencyCode= USD
    geoplugin_currencySymbol= $
    geoplugin_currencyConverter= 1
    

    그것은 당신이 주위에 놀 수있는 많은 옵션을 가지고 있습니다.

    감사

    :)

  3. ==============================

    3.나는 Chandra의 대답을 시도했으나 나의 서버 구성은 file_get_contents ()를 허용하지 않았다.

    나는 Chandra의 대답을 시도했으나 나의 서버 구성은 file_get_contents ()를 허용하지 않았다.

    PHP 경고 : file_get_contents () 서버 구성에서 URL 파일 액세스가 비활성화되었습니다.

    Chandra의 코드를 수정하여 cURL을 사용하는 서버에서도 작동합니다.

    function ip_visitor_country()
    {
    
        $client  = @$_SERVER['HTTP_CLIENT_IP'];
        $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
        $remote  = $_SERVER['REMOTE_ADDR'];
        $country  = "Unknown";
    
        if(filter_var($client, FILTER_VALIDATE_IP))
        {
            $ip = $client;
        }
        elseif(filter_var($forward, FILTER_VALIDATE_IP))
        {
            $ip = $forward;
        }
        else
        {
            $ip = $remote;
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "http://www.geoplugin.net/json.gp?ip=".$ip);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $ip_data_in = curl_exec($ch); // string
        curl_close($ch);
    
        $ip_data = json_decode($ip_data_in,true);
        $ip_data = str_replace('&quot;', '"', $ip_data); // for PHP 5.2 see stackoverflow.com/questions/3110487/
    
        if($ip_data && $ip_data['geoplugin_countryName'] != null) {
            $country = $ip_data['geoplugin_countryName'];
        }
    
        return 'IP: '.$ip.' # Country: '.$country;
    }
    
    echo ip_visitor_country(); // output Coutry name
    
    ?>
    

    희망은 도움이 ;-)

  4. ==============================

    4.사실, http://api.hostip.info/?ip=123.125.114.144를 호출하여 XML로 제공되는 정보를 얻을 수 있습니다.

    사실, http://api.hostip.info/?ip=123.125.114.144를 호출하여 XML로 제공되는 정보를 얻을 수 있습니다.

  5. ==============================

    5.MaxMind GeoIP (또는 지불 할 준비가되지 않은 경우 GeoIPLite)를 사용하십시오.

    MaxMind GeoIP (또는 지불 할 준비가되지 않은 경우 GeoIPLite)를 사용하십시오.

    $gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);
    
  6. ==============================

    6.다음 서비스 사용

    다음 서비스 사용

    1) http://api.hostip.info/get_html.php?ip=12.215.42.19

    2)

    $json = file_get_contents('http://freegeoip.appspot.com/json/66.102.13.106');
    $expression = json_decode($json);
    print_r($expression);
    

    3) http://ipinfodb.com/ip_location_api.php

  7. ==============================

    7.code.google에서 php-ip-2-country를 확인하십시오. 그들이 제공하는 데이터베이스는 매일 업데이트되므로 사용자가 자체 SQL 서버를 호스트하는 경우 외부 서버에 연결할 필요가 없습니다. 코드를 사용하면 다음과 같이 입력하면됩니다.

    code.google에서 php-ip-2-country를 확인하십시오. 그들이 제공하는 데이터베이스는 매일 업데이트되므로 사용자가 자체 SQL 서버를 호스트하는 경우 외부 서버에 연결할 필요가 없습니다. 코드를 사용하면 다음과 같이 입력하면됩니다.

    <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    
    if(!empty($ip)){
            require('./phpip2country.class.php');
    
            /**
             * Newest data (SQL) avaliable on project website
             * @link http://code.google.com/p/php-ip-2-country/
             */
            $dbConfigArray = array(
                    'host' => 'localhost', //example host name
                    'port' => 3306, //3306 -default mysql port number
                    'dbName' => 'ip_to_country', //example db name
                    'dbUserName' => 'ip_to_country', //example user name
                    'dbUserPassword' => 'QrDB9Y8CKMdLDH8Q', //example user password
                    'tableName' => 'ip_to_country', //example table name
            );
    
            $phpIp2Country = new phpIp2Country($ip,$dbConfigArray);
            $country = $phpIp2Country->getInfo(IP_COUNTRY_NAME);
            echo $country;
    ?>
    

    자원의 예제 코드

    <?
    require('phpip2country.class.php');
    
    $dbConfigArray = array(
            'host' => 'localhost', //example host name
            'port' => 3306, //3306 -default mysql port number
            'dbName' => 'ip_to_country', //example db name
            'dbUserName' => 'ip_to_country', //example user name
            'dbUserPassword' => 'QrDB9Y8CKMdLDH8Q', //example user password
            'tableName' => 'ip_to_country', //example table name
    );
    
    $phpIp2Country = new phpIp2Country('213.180.138.148',$dbConfigArray);
    
    print_r($phpIp2Country->getInfo(IP_INFO));
    ?>
    

    산출

    Array
    (
        [IP_FROM] => 3585376256
        [IP_TO] => 3585384447
        [REGISTRY] => RIPE
        [ASSIGNED] => 948758400
        [CTRY] => PL
        [CNTRY] => POL
        [COUNTRY] => POLAND
        [IP_STR] => 213.180.138.148
        [IP_VALUE] => 3585378964
        [IP_FROM_STR] => 127.255.255.255
        [IP_TO_STR] => 127.255.255.255
    )
    
  8. ==============================

    8.geobytes.com을 사용하여 사용자 IP 주소를 사용하여 위치를 가져올 수 있습니다.

    geobytes.com을 사용하여 사용자 IP 주소를 사용하여 위치를 가져올 수 있습니다.

    $user_ip = getIP();
    $meta_tags = get_meta_tags('http://www.geobytes.com/IPLocator.htm?GetLocation&template=php3.txt&IPAddress=' . $user_ip);
    echo '<pre>';
    print_r($meta_tags);
    

    이 같은 데이터를 반환합니다

    Array(
        [known] => true
        [locationcode] => USCALANG
        [fips104] => US
        [iso2] => US
        [iso3] => USA
        [ison] => 840
        [internet] => US
        [countryid] => 254
        [country] => United States
        [regionid] => 126
        [region] => California
        [regioncode] => CA
        [adm1code] =>     
        [cityid] => 7275
        [city] => Los Angeles
        [latitude] => 34.0452
        [longitude] => -118.2840
        [timezone] => -08:00
        [certainty] => 53
        [mapbytesremaining] => Free
    )
    

    사용자 IP를 얻는 기능

    function getIP(){
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
        $pattern = "/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/";
        if(preg_match($pattern, $_SERVER["HTTP_X_FORWARDED_FOR"])){
                $userIP = $_SERVER["HTTP_X_FORWARDED_FOR"];
        }else{
                $userIP = $_SERVER["REMOTE_ADDR"];
        }
    }
    else{
      $userIP = $_SERVER["REMOTE_ADDR"];
    }
    return $userIP;
    }
    
  9. ==============================

    9.이 간단한 한 줄 코드를 사용해보십시오, 당신은 그들의 IP 원격 주소에서 방문자의 나라와 도시를 얻을 것입니다.

    이 간단한 한 줄 코드를 사용해보십시오, 당신은 그들의 IP 원격 주소에서 방문자의 나라와 도시를 얻을 것입니다.

    $tags = get_meta_tags('http://www.geobytes.com/IpLocator.htm?GetLocation&template=php3.txt&IpAddress=' . $_SERVER['REMOTE_ADDR']);
    echo $tags['country'];
    echo $tags['city'];
    
  10. ==============================

    10.CPAN에서 Perl 커뮤니티가 유지 관리하는 ip-> country 데이터베이스의 잘 유지 된 플랫 파일 버전이 있습니다.

    CPAN에서 Perl 커뮤니티가 유지 관리하는 ip-> country 데이터베이스의 잘 유지 된 플랫 파일 버전이 있습니다.

    이러한 파일에 대한 액세스에는 dataserver가 필요하지 않으며 데이터 자체는 약 515k입니다.

    Higemaru는 그 데이터와 대화하기 위해 PHP 래퍼를 작성했습니다 : php-ip-country-fast

  11. ==============================

    11.http://ip-api.com에서 웹 서비스를 사용할 수 있습니다. 귀하의 PHP 코드에서 다음과 같이하십시오 :

    http://ip-api.com에서 웹 서비스를 사용할 수 있습니다. 귀하의 PHP 코드에서 다음과 같이하십시오 :

    <?php
    $ip = $_REQUEST['REMOTE_ADDR']; // the IP address to query
    $query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
    if($query && $query['status'] == 'success') {
      echo 'Hello visitor from '.$query['country'].', '.$query['city'].'!';
    } else {
      echo 'Unable to get location';
    }
    ?>
    

    쿼리에는 다른 많은 정보가 있습니다.

    array (
      'status'      => 'success',
      'country'     => 'COUNTRY',
      'countryCode' => 'COUNTRY CODE',
      'region'      => 'REGION CODE',
      'regionName'  => 'REGION NAME',
      'city'        => 'CITY',
      'zip'         => ZIP CODE,
      'lat'         => LATITUDE,
      'lon'         => LONGITUDE,
      'timezone'    => 'TIME ZONE',
      'isp'         => 'ISP NAME',
      'org'         => 'ORGANIZATION NAME',
      'as'          => 'AS NUMBER / NAME',
      'query'       => 'IP ADDRESS USED FOR QUERY',
    )
    
  12. ==============================

    12.그것을하는 많은 다른 방법 ...

    그것을하는 많은 다른 방법 ...

    사용할 수있는 제 3 자 서비스는 http://ipinfodb.com입니다. 호스트 이름, 위치 정보 및 추가 정보를 제공합니다.

    여기 API 키에 등록하십시오 : http://ipinfodb.com/register.php. 이렇게하면 서버에서 결과를 검색 할 수 있지만 작동하지 않으면 결과를 검색 할 수 있습니다.

    다음 PHP 코드를 복사하여 붙여 넣으십시오.

    $ipaddress = $_SERVER['REMOTE_ADDR'];
    $api_key = 'YOUR_API_KEY_HERE';
    
    $data = file_get_contents("http://api.ipinfodb.com/v3/ip-city/?key=$api_key&ip=$ipaddress&format=json");
    $data = json_decode($data);
    $country = $data['Country'];
    

    단점 :

    자신의 웹 사이트에서 인용 :

    이 함수는 http://www.netip.de/ 서비스를 사용하여 국가 이름을 반환합니다.

    $ipaddress = $_SERVER['REMOTE_ADDR'];
    function geoCheckIP($ip)
    {
        $response=@file_get_contents('http://www.netip.de/search?query='.$ip);
    
        $patterns=array();
        $patterns["country"] = '#Country: (.*?)&nbsp;#i';
    
        $ipInfo=array();
    
        foreach ($patterns as $key => $pattern)
        {
            $ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found';
        }
    
            return $ipInfo;
    }
    
    print_r(geoCheckIP($ipaddress));
    

    산출:

    Array ( [country] => DE - Germany )  // Full Country Name
    
  13. ==============================

    13.내 서비스 ipdata.co는 5 개 국어로 국가 이름을 제공합니다! 모든 IPv4 또는 IPv6 주소에서 조직, 통화, 시간대, 호출 코드, 플래그, 이동 통신사 데이터, 프록시 데이터 및 Tor Exit 노드 상태 데이터를 확인할 수 있습니다.

    내 서비스 ipdata.co는 5 개 국어로 국가 이름을 제공합니다! 모든 IPv4 또는 IPv6 주소에서 조직, 통화, 시간대, 호출 코드, 플래그, 이동 통신사 데이터, 프록시 데이터 및 Tor Exit 노드 상태 데이터를 확인할 수 있습니다.

    초당 10,000 개 이상의 요청을 처리 할 수있는 전 세계 10 개 지역으로 확장 가능합니다.

    옵션에는 다음이 포함됩니다. 영어 (en), 독일어 (de), 일본어 (ja), 프랑스어 (fr) 및 중국어 (za-CH)

    $ip = '74.125.230.195';
    $details = json_decode(file_get_contents("https://api.ipdata.co/{$ip}?api-key=test"));
    echo $details->country_name;
    //United States
    echo $details->city;
    //Mountain View
    $details = json_decode(file_get_contents("https://api.ipdata.co/{$ip}?api-key=test/zh-CN"));
    echo $details->country_name;
    //美国
    
  14. ==============================

    14.이것이 새로운 서비스인지 확실하지 않지만 현재 (2016) PHP에서 가장 쉬운 방법은 geoplugin의 PHP 웹 서비스를 사용하는 것입니다 : http://www.geoplugin.net/php.gp :

    이것이 새로운 서비스인지 확실하지 않지만 현재 (2016) PHP에서 가장 쉬운 방법은 geoplugin의 PHP 웹 서비스를 사용하는 것입니다 : http://www.geoplugin.net/php.gp :

    기본 사용법 :

    // GET IP ADDRESS
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else if (!empty($_SERVER['REMOTE_ADDR'])) {
        $ip = $_SERVER['REMOTE_ADDR'];
    } else {
        $ip = false;
    }
    
    // CALL THE WEBSERVICE
    $ip_info = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$ip));
    

    또한 준비된 클래스를 제공합니다. http://www.geoplugin.com/_media/webservices/geoplugin.class.php.tgz?id=webservices%3Aphp&cache=cache

  15. ==============================

    15.나는 프로젝트에서 사용한이 질문에 대한 짧은 대답을 가지고있다. 내 대답에는 당신이 방문자의 IP 주소를 가지고 있다고 생각합니다.

    나는 프로젝트에서 사용한이 질문에 대한 짧은 대답을 가지고있다. 내 대답에는 당신이 방문자의 IP 주소를 가지고 있다고 생각합니다.

    $ip = "202.142.178.220";
    $ipdat = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" . $ip));
    //get ISO2 country code
    if(property_exists($ipdat, 'geoplugin_countryCode')) {
        echo $ipdat->geoplugin_countryCode;
    }
    //get country full name
    if(property_exists($ipdat, 'geoplugin_countryName')) {
        echo $ipdat->geoplugin_countryName;
    }
    

    그것이 내 대답에 투표하는 데 도움이된다면.

  16. ==============================

    16.나는 ipinfodb.com api를 사용하고 당신이 찾고있는 것을 정확히 얻고 있습니다.

    나는 ipinfodb.com api를 사용하고 당신이 찾고있는 것을 정확히 얻고 있습니다.

    그것의 완전하게 자유로운, 당신은 그 (것)들에 당신의 API 열쇠를 얻기 위하여 등록 할 필요가있다. 웹 사이트에서 다운로드하여 php 클래스를 포함하거나 url 형식을 사용하여 정보를 검색 할 수 있습니다.

    여기 내가하고있는 일이있다.

    스크립트에 PHP 클래스를 포함시키고 아래 코드를 사용했습니다.

    $ipLite = new ip2location_lite;
    $ipLite->setKey('your_api_key');
    if(!$_COOKIE["visitorCity"]){ //I am using cookie to store information
      $visitorCity = $ipLite->getCity($_SERVER['REMOTE_ADDR']);
      if ($visitorCity['statusCode'] == 'OK') {
        $data = base64_encode(serialize($visitorCity));
        setcookie("visitorCity", $data, time()+3600*24*7); //set cookie for 1 week
      }
    }
    $visitorCity = unserialize(base64_decode($_COOKIE["visitorCity"]));
    echo $visitorCity['countryName'].' Region'.$visitorCity['regionName'];
    

    그게 전부 야.

  17. ==============================

    17.당신은 http://ipinfo.io/를 사용하여 IP 주소의 세부 정보를 얻을 수 있습니다. 사용하기 쉽습니다.

    당신은 http://ipinfo.io/를 사용하여 IP 주소의 세부 정보를 얻을 수 있습니다. 사용하기 쉽습니다.

    <?php
        function ip_details($ip)
        {
        $json = file_get_contents("http://ipinfo.io/{$ip}");
        $details = json_decode($json);
        return $details;
        }
    
        $details = ip_details(YoUR IP ADDRESS); 
    
        echo $details->city;
        echo "<br>".$details->country; 
        echo "<br>".$details->org; 
        echo "<br>".$details->hostname; /
    
        ?>
    
  18. ==============================

    18.127.0.0.1을 방문자 IpAddress로 바꾸십시오.

    127.0.0.1을 방문자 IpAddress로 바꾸십시오.

    $country = geoip_country_name_by_name('127.0.0.1');
    

    설치 지침은 여기에 있으며, 도시, 주, 국가, 경도, 위도 등을 얻는 방법을 알기 위해이 안내서를 읽으십시오.

  19. ==============================

    19.IP 주소가 국가 API 인 라이너 1 개

    IP 주소가 국가 API 인 라이너 1 개

    echo file_get_contents('https://ipapi.co/8.8.8.8/country_name/');
    
    > United States
    

    예 :

    https://ipapi.co/country_name/ - 귀하의 국가

    https://ipapi.co/8.8.8.8/country_name/ - IP 8.8.8.8 국가

  20. ==============================

    20.사용자 국가 API는 사용자가 필요로하는 것과 정확히 일치합니다. 원래는 file_get_contents ()를 사용하는 샘플 코드입니다.

    사용자 국가 API는 사용자가 필요로하는 것과 정확히 일치합니다. 원래는 file_get_contents ()를 사용하는 샘플 코드입니다.

    $result = json_decode(file_get_contents('http://usercountry.com/v1.0/json/'.$cip), true);
    $result['country']['name']; // this contains what you need
    
  21. ==============================

    21.ipstack geo API를 사용하여 방문자 국가 및 도시를 얻을 수 있습니다. 자신의 ipstack API를 가져와 다음 코드를 사용해야합니다.

    ipstack geo API를 사용하여 방문자 국가 및 도시를 얻을 수 있습니다. 자신의 ipstack API를 가져와 다음 코드를 사용해야합니다.

    <?php
     $ip = $_SERVER['REMOTE_ADDR']; 
     $api_key = "YOUR_API_KEY";
     $freegeoipjson = file_get_contents("http://api.ipstack.com/".$ip."?access_key=".$api_key."");
     $jsondata = json_decode($freegeoipjson);
     $countryfromip = $jsondata->country_name;
     echo "Country: ". $countryfromip ."";
    ?>
    

    출처 : ipstack API를 사용하여 PHP에서 방문자 국가와 도시를 얻으십시오.

  22. from https://stackoverflow.com/questions/12553160/getting-visitors-country-from-their-ip by cc-by-sa and MIT license