从IP获取实际国家/地区

时间:2018-02-07 17:43:15

标签: php ios web-services

我正在开发一个iOS应用程序,我想知道我的实际国家(如:US-ES-EN-etc)或我的应用程序(不使用位置)或在网络端(php)通过http请求。

可能吗?

2 个答案:

答案 0 :(得分:0)

是的,我们将使用ip geolocation 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;

答案 1 :(得分:0)

但是,如果你的访问者会使用一个非典型代理,那就不准确了......无论如何要尽可能准确地猜测你可以像这样猜测真正的IP:

<?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