从IP地址查找时区

当我拥有的是他们的IP地址时,有没有办法找到用户所在的时区? 我正在寻找我需要应用于服务器时间的时间偏移量,以便找到用户位置的时间。

您需要尝试确定位置(远非100%准确)。 看到关于这样做的问题 。

有关将邮政编码转换为时区的问题 ,请参阅此问题 (尽管如此,这不是100%的傻瓜certificate)。

简短的版本是:它很复杂。 您必须使用第三方服务来维护位置的IP掩码数据库,然后使用其中确定的位置来确定时区。

让客户端在连接时简单地发送时区(或UTC偏移量)更加可靠。

如果这是一个Web应用程序,请参阅有关使用JavaScript确定客户端时区的另一个问题 。

MaxMind提供了一个可以帮助您完成任务的数据库: http : //www.maxmind.com/app/city

ip2nation提供了一个SQL数据库,您可以查询该数据库以对IP地址进行地理定位:
http://www.ip2nation.com/ip2nation/Download

使用国家/地区代码,您可以通过查询其他数据库或库来检索国家/地区的时区。

您可以使用ipapi.co从IP地址获取用户的时区和UTC偏移量 :

https://ipapi.co/8.8.8.8/timezone > America/Los_Angeles https://ipapi.co/8.8.8.8/utc_offset > -0800 

使用restSharp.org和我的服务ipdata.co

 var client = new RestClient("https://api.ipdata.co?api-key=test"); var request = new RestRequest("1.1.1.1", Method.GET); request.AddHeader("Content-Type", "application/json"); IRestResponse response = client.Execute(request); var content = response.Content; // raw content as string RestResponse response2 = client.Execute(request); var time_zone = response2.Data.time_zone;