【问题标题】:Getting timezone via IP通过 IP 获取时区
【发布时间】:2016-08-09 05:36:24
【问题描述】:

我将网站上传到我们的服务器时遇到问题。我有这个 PHP 脚本可以通过该 URL 获取时区。

$ipInfo = file_get_contents('http://ip-api.com/json');
$ipInfo = json_decode($ipInfo);

我的问题是它返回美国/芝加哥的时区。但是当我直接访问地址栏的 URL 时,它会返回正确的时区

【问题讨论】:

  • 你的服务器在美国有没有机会......?
  • 您的服务器可能使用的不是亚洲/马尼拉时区,而是美国/芝加哥。您需要在您的服务器中更改它 - 如何做到这一点因服务器类型和配置而异。
  • @Joel 在这种情况下,这意味着将服务器物理移动到菲律宾......
  • @deceze 对,没意识到它是基于 ip 的;应该读得更透彻。
  • @deceze 答案是我需要的。 :D

标签: php json laravel timezone


【解决方案1】:

ip-api.com 根据发出请求的 IP 响应数据。如果您在菲律宾并且正在访问该网站,您将看到关于您自己的信息。如果您的服务器在美国并且正在从该站点请求,它将看到有关自身的信息。

如果您希望您的服务器检索有关正在访问它的客户端的信息,您必须传递访问客户端的 IP。根据the documentation,您将其附加到 URL:

file_get_contents('http://ip-api.com/json/' . $_SERVER['REMOTE_ADDR'])

【讨论】:

  • 你摇滚。谢谢!。这就是我需要的
【解决方案2】:

http://ip-api.com/json/ 不再工作(至少对我而言)

我最终改用了这个:

curl -s http://geoip.ubuntu.com/lookup | grep -oP '(?<=<TimeZone>)(.*)(?=</TimeZone>)'

【讨论】:

    猜你喜欢
    • 2014-03-16
    • 1970-01-01
    • 2010-10-19
    • 2013-10-24
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多