0

有没有办法检测到我的客户的 IP 地址,然后用它来跟踪他的时区。我目前正在使用这个代码块和一个 API:

    function getIpAddress() {
    return (empty($_SERVER['HTTP_CLIENT_IP'])?(empty($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['REMOTE_ADDR']:$_SERVER['HTTP_X_FORWARDED_FOR']):$_SERVER['HTTP_CLIENT_IP']);
}

    ini_set("allow_url_fopen",1);
    $getfunc= 'getIpAddress';
    $getfunc= 'getIpAddress'; 
    $json   = file_get_contents('http://smart-ip.net/geoip-json/'.$ip);
    $ipData = json_decode( $json, true);
    $ipadd   = $ipData['host'];
    $geotz  = $ipData['timezone'];
    $geotzd = 'Passed';
    $cntry  = $ipData['countryName'];

$ip 返回 122.54.230.162。但仍然说我的问题是

    Message: Undefined index: timezone

在服务器上测试它会显示这个错误,而在本地没问题..我需要帮助

最好的祝福..

4

1 回答 1

3

有多种猜测时区的方法。使用您的问题中的服务就是其中之一,尽管该代码在我看来就像获取本地计算机的时区,但我可能是错的。无论如何,这似乎并不可靠。

另一种方法是jstimezonedetect javascript 库。

于 2012-12-12T05:22:56.443 回答