从IP地址查找时区

时间:2010-05-24 16:41:07

标签: c# .net timezone ip-address

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

5 个答案:

答案 0 :(得分:9)

您需要尝试确定位置(远非100%准确)。看到 this question关于做到这一点。

有关将邮政编码翻译成时区的信息,请参阅this question(尽管如此,这不是100%的傻瓜证明)。

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

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

如果这是一个Web应用程序,请参阅one more question有关使用JavaScript确定客户端时区的信息。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

使用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<Ip> response2 = client.Execute<Ip>(request);
var time_zone = response2.Data.time_zone;

答案 4 :(得分:0)

您可以使用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