Find time zone from IP address

风格不统一 提交于 2019-12-23 19:54:54

问题


Is there a way to find the time zone a user is in when all I have is their IP address? I'm looking for the time offset I need to apply to the server time in order to find the time for the user's location.


回答1:


You'll need to attempt to determine the location (which is far from 100% accurate). See this question about doing just that.

See this question about translating a zip code into time zone (though that, again, is not 100% fool proof).

The short version is: it's complicated. You'll have to use a third-party service that maintains a database of IP masks to locations, then use the location determined there to determine the time zone.

It's far more reliable to have the client simply send the time zone (or UTC offset) when it connects.

If this is a web application, see one more question about using JavaScript to determine the client time zone.




回答2:


MaxMind offers a database you can purchase that will help you with your task: http://www.maxmind.com/app/city




回答3:


ip2nation provides an SQL database that you can query to geolocate an IP address:
http://www.ip2nation.com/ip2nation/Download

With the country code in hand, you can retrieve a country's time zone possibly by querying another database or library.




回答4:


You can get both a user's timezone and the UTC Offset from an IP address with ipapi.co :

https://ipapi.co/8.8.8.8/timezone
> America/Los_Angeles

https://ipapi.co/8.8.8.8/utc_offset
> -0800



回答5:


Using restSharp.org and my service 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;


来源:https://stackoverflow.com/questions/2898581/find-time-zone-from-ip-address

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!