2010-05-24 146 views
3

當我擁有的是他們的IP地址時,是否有辦法查找用戶所在的時區?我正在尋找我需要應用到服務器時間的時間偏移量,以便查找用戶位置的時間。從IP地址查找時區

回答

9

您需要嘗試確定位置(遠不是100%準確)。關於如何做到這一點,請參閱 this question

請參閱this question關於將郵政編碼轉換爲時區(儘管這也不是100%的防範)。

簡短版本是:它很複雜。您必須使用第三方服務來維護IP掩碼到位置的數據庫,然後使用確定的位置來確定時區。

讓客戶端在連接時只需發送時區(或UTC偏移量)就可靠得多。

如果這是一個Web應用程序,請參閱one more question關於使用JavaScript來確定客戶端時區。

0

的MaxMind提供你可以購買,這將有助於你與你的任務數據庫: http://www.maxmind.com/app/city

+0

我們已經在使用的MaxMind的免費GeoIP.dat數據庫爲國家查找,但它不給我們的時區。發佈在他們網站上的時區文本文件(http://www.maxmind.com/timezone.txt)也不是那麼有用 – theburningmonk 2010-05-24 16:57:47

0

使用restSharp.org和我的服務https://ipdata.co

var client = new RestClient("https://api.ipdata.co"); 
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

您可以就獲得了用戶的時區,並從一個IP地址的偏移量與ipapi.co的UTC:

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

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