从客户端的IP地址检测时区

时间:2012-12-12 05:04:19

标签: php api datetime timezone

有没有办法检测到我的客户端的IP地址然后使用它来跟踪他的时区.. iam目前正在使用这段代码和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

在服务器上测试它会在本地出现时显示此错误。 我需要帮助

最好的问候..

1 个答案:

答案 0 :(得分:3)

有多种猜测时区的方法。使用像你的问题中的服务是一个,虽然该代码看起来像它获得本地计算机的时区,但我可能是错的。在任何情况下,它似乎都不可靠。

另一种方式是jstimezonedetect javascript库。