从客户端 IP 地址进行时区检测



有没有办法检测我的客户端的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

在服务器上测试它将显示此错误,而在本地可以。我需要帮助

此致敬意。。

有多种

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

另一种方法是jstimezonedetect javascript库。

相关内容

  • 没有找到相关文章

最新更新