我如何通过IP地址获取olson zoneinfo

时间:2013-09-02 11:56:30

标签: java date timezone

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

2 个答案:

答案 0 :(得分:0)

尝试geoip(http://www.maxmind.com/),它不是免费的,但效果很好,数据库更新经常。 然后,您可以通过来自客户端IP的国家和地区从com.maxmind.geoip.timeZone获取时区信息

String timeZoneByCountryAndRegion(String country, String region)

答案 1 :(得分:0)

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

有许多服务可以从纬度和经度坐标获取IANA / Olson时区标识符。请参阅:How to get a time zone from a location using latitude and longitude coordinates?

要获得经度和纬度,您应该尽量不依赖IP地理位置。许多Web浏览器都在可以报告其真实坐标的实际设备上运行,例如在移动电话上。如果必须,您可以回退到IP地理位置,并且有许多服务试图这样做。

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