从IP地址查找时区

问题描述 投票:3回答:5

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

c# .net timezone ip-address
5个回答
9
投票

您需要尝试确定位置(远非100%准确)。请参阅this question关于这样做。

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

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

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

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


0
投票

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


0
投票

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

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


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

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;
© www.soinside.com 2019 - 2024. All rights reserved.