Найти часовой пояс с IP-адреса - PullRequest
3 голосов
/ 24 мая 2010

Есть ли способ найти часовой пояс, в котором находится пользователь, когда у меня есть только его IP-адрес? Я ищу смещение времени, которое мне нужно применить к времени сервера, чтобы найти время для местоположения пользователя.

Ответы [ 5 ]

9 голосов
/ 24 мая 2010

Вам нужно будет попытаться определить местоположение (которое далеко не на 100% точно). Увидеть этот вопрос о том, как именно это сделать.

См. этот вопрос о переводе почтового индекса в часовой пояс (хотя, опять же, это не на 100% надежно).

Короткая версия: это сложно. Вам нужно будет использовать стороннюю службу, которая поддерживает базу данных масок IP для местоположений, а затем использует местоположение, определенное там, для определения часового пояса.

Гораздо надежнее, чтобы клиент просто отправлял часовой пояс (или смещение UTC) при подключении.

Если это веб-приложение, см. еще один вопрос об использовании JavaScript для определения часового пояса клиента.

0 голосов
/ 09 февраля 2018

Вы можете получить как часовой пояс пользователя, так и смещение UTC с IP-адреса с помощью ipapi.co :

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

https://ipapi.co/8.8.8.8/utc_offset
> -0800
0 голосов
/ 05 сентября 2017

Использование 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;
0 голосов
/ 24 мая 2010

ip2nation предоставляет базу данных SQL, которую вы можете запросить для геолокации IP-адреса:
http://www.ip2nation.com/ip2nation/Download

Имея код страны в руках, вы можете получить часовой пояс страны, возможно, запросив другую базу данных или библиотеку.

0 голосов
/ 24 мая 2010

MaxMind предлагает базу данных, которую вы можете приобрести, которая поможет вам в вашей задаче: http://www.maxmind.com/app/city

...