0

有人知道如何通过客户端 IP 获取olson zoneinfo 吗?我尝试了一些免费的 IP 服务,但他们返回的是“New York”而不是“America/New_York”。

4

2 回答 2

0

试试 geoip ( http://www.maxmind.com/ ),它不是免费的,但运行良好,并且数据库经常更新。然后您可以从客户端 ip 按国家和地区从 com.maxmind.geoip.timeZone 获取时区信息

String timeZoneByCountryAndRegion(String country, String region)
于 2013-09-02T12:34:40.637 回答
0

您需要将其分为两个步骤。

有许多服务可以从经纬度坐标中获取 IANA/Olson 时区标识符。请参阅: 如何使用纬度和经度坐标从某个位置获取时区?

要获取经纬度,您应该尽量不要依赖 IP Geolocation。许多网络浏览器都在可以报告其真实坐标的实际设备上运行,例如在手机上。如果必须,您可以回退到 IP 地理定位,并且有许多服务尝试这样做。

IP 地理定位的问题在于您无法保证准确性。许多人通过代理服务器、VPN 或其他机制访问互联网,您正在查找的 IP 实际上可能与他们的位置根本不相关。

于 2013-09-02T17:20:11.690 回答