【问题标题】:How to get clients timezone offset from his ip address如何从他的 IP 地址获取客户时区偏移量
【发布时间】:2011-02-15 08:04:09
【问题描述】:

我想从我的网络应用程序的 IP 地址获取客户时区偏移量。我曾尝试使用 Javascripts getTimezone 函数,但是,某些客户端的时区或时间设置不正确。我想根据时区获取偏移量并在客户端上呈现一些信息。

感谢您花时间阅读问题。我也对其他方法持开放态度。

问候, 瓦米普

【问题讨论】:

    标签: c# asp.net timezone


    【解决方案1】:

    如果您可以调用网络服务,您不妨试试 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。如果它不够好,您显然可以升级到更准确的付费版本。我无法评价付费版本的质量,因为我从未使用过它。可以download the file binary blob version同一个数据库,然后用the C# class查询。

    【讨论】:

    • ipinfodb.com 不再使用 TimezoneName,只使用偏移量。
    • 更进一步,ipinfodb 将查询的速率限制为 2/sec,这对于小流量网站来说是不够的。见“查询限制”here
    【解决方案2】:

    谷歌'地理位置 ip'

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

    【讨论】:

      猜你喜欢
      • 2013-08-28
      • 1970-01-01
      • 2012-03-14
      • 2012-02-16
      • 2015-12-20
      • 2016-03-29
      • 1970-01-01
      • 2012-11-29
      • 2019-01-14
      相关资源
      最近更新 更多