【问题标题】:Timezone detection from Clients' IP Address从客户端的 IP 地址检测时区
【发布时间】:2012-11-29 18:22:56
【问题描述】:

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

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

最好的问候..

【问题讨论】:

  • $json 的价值是什么?你能记录下来吗?
  • 你应该看看下面的链接。 stackoverflow.com/questions/3488425/…
  • Psst,你得到的是hostname结果的IP地址,这很可能导致本地或私有IP地址范围。或许你应该把一个真实的 IP 地址放在那里进行测试。
  • 其实我已经把 $ip 改成了

标签: php api datetime timezone


【解决方案1】:

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

另一种方法是jstimezonedetect javascript 库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-21
    • 2011-10-04
    • 1970-01-01
    • 2011-09-09
    • 2011-10-22
    • 2018-03-18
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多