从IP获取实际国家



我正在开发一个iOS应用程序,我想知道我的实际国家(例如:us-es-es-en-etc(或在我的应用程序中(不使用位置(或网络上侧面(php(通过http请求。

可能?

是的,我们将使用IP地理位置API:

<?php
    $ip = "8.8.8.8";
    $curl = curl_init("http://ip-api.com/json/$ip");
    curl_setopt_array($curl, [CURLOPT_RETURNTRANSFER => TRUE]);
    $response = json_decode(curl_exec($curl));
    echo $response->country;

但是,如果您的访问者使用一个非类型代理,那么它不是准确的...这个:

<?php
    if( array_key_exists( 'HTTP_X_FORWARDED_FOR', $_SERVER ) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    elseif( array_key_exists( 'REMOTE_ADDR', $_SERVER ) $ip = $_SERVER['REMOTE_ADDR'];
    elseif( array_key_exists( 'HTTP_CLIENT_IP', $_SERVER ) $ip = $_SERVER['HTTP_CLIENT_IP'];
    else die( "can't guess ip" );
?>

然后,您可以使用第三方服务获取国家代码:

http://api.hostip.info/country.php?ip=83.24.10.141

http://ip-api.com/json/83.24.10.141

等。

相关内容

  • 没有找到相关文章

最新更新