如何从客户端的IP地址获取其时区偏移量

4
我想从客户的IP地址获取他们的时区偏移量,并在我的网络应用程序中显示相关信息。我尝试使用JavaScript的getTimezone函数,但是一些客户的时区或时间设置不正确。我希望获取偏移量,并根据客户的时区呈现一些信息。
感谢您花时间阅读此问题。我也可以接受其他方法。
敬礼, Vamyip
2个回答

3
如果您可以调用Web服务,您可以尝试使用ipinfodb.com。例如:

http://ipinfodb.com/ip_query.php?ip=69.59.196.211&timezone=true

返回:

<Response> <Ip>69.59.196.211</Ip> <Status>OK</Status> <CountryCode>US</CountryCode> <CountryName>United States</CountryName> <RegionCode>41</RegionCode> <RegionName>Oregon</RegionName> <City>Corvallis</City> <ZipPostalCode>97333</ZipPostalCode> <Latitude>44.4698</Latitude> <Longitude>-123.343</Longitude> <TimezoneName>America/Los_Angeles</TimezoneName> <Gmtoffset>-25200</Gmtoffset> <Isdst>1</Isdst> </Response>

更快的选择是使用免费的MaxMind Geolite city。如果不够好,显然可以升级到更准确的付费版本。我无法对付费版本的质量发表意见,因为我从未使用过。您可以下载相同数据库的二进制文件版本,然后使用C#类进行查询。

1
ipinfodb.com不再提供TimezoneName,只提供偏移量。 - Jonny White
此外,ipinfodb 将查询速率限制在每秒 2 次,这对于流量较大的网站来说不够。请参见此处的“查询限制”。(http://ipinfodb.com/ip_location_api.php) - Boaz Rymland

-3

谷歌搜索“IP地理位置”

有一些公司提供的API可以调用。有些是免费的,有些则不是。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接