2012-03-10 66 views
0

我已經在我的網站上搜索了有關ip &的位置。我想知道我的訪客進入網站的位置。根據他的位置,我會製作一些錄音,以不同的主題展示網站等等。IP和位置信息

我正在使用Asp.Net,我不會使用任何提供程序或工具。我想自己做。我該怎麼做 ?我應該搜索什麼?

+0

你說過你搜索過。你發現了什麼?您正在尋找'IP GeoLocation'。 – 2012-03-10 21:30:37

+0

是的,我發現了,但我已經寫過上面我想要我自己的。如何向第三方網站提供這些信息?我不想依賴於ipionfodb或者比如!他們在哪裏獲得信息? – icaptan 2012-03-10 21:36:41

+1

不依賴於第三方而做到這一點的唯一方法是使用HTML5的GeoLocation功能,並將其用於客戶端。這在瀏覽器支持方面有限制。我想你也可以購買IP地理位置數據庫並將其集成到後端。 – Mark 2012-03-10 21:38:45

回答

3

您需要使用第三方服務或工具來收集GeoLocation。我建議嘗試一下IPInfoDB,http://www.ipinfodb.com,這是一個免費的GeoLocation服務。一旦你的API密鑰註冊,你可以在C#中使用該服務如下:

public static GeoLocation HostIpToPlaceName(string ip) 
    { 
     string url = "http://api.ipinfodb.com/v2/ip_query.php?key={enterAPIKeyHere}&ip={0}&timezone=false"; 
     url = String.Format(url, ip); 

     var result = XDocument.Load(url); 

     var location = (from x in result.Descendants("Response") 
         select new GeoLocation 
         { 
          City = (string)x.Element("City"), 
          Region = (string)x.Element("RegionName"), 
          CountryId = (string)x.Element("CountryName") 
         }).First(); 

     return location; 
    } 

有提供GeoLocation中,但IPInfoDB是免費的,一直運作良好,我的許多服務。

您也可以使用HTML5在客戶端收集此信息,如http://html5demos.com/geo所示。當然,如果你想在你的代碼中使用這些信息,你將不得不將它傳遞給後端。

+0

請在我的問題上看到我上面的評論。我想了解他們(ipinfodb或類似網站)如何獲取有關IP所屬的位置的數據。 – icaptan 2012-03-10 21:37:30

+1

像IpInfoDB這樣的服務從各種服務中收集這些信息。不同地區的IP地址由不同的機構提供。在北美,IP地址由ARIN(美國互聯網號碼註冊局)提供。 ARIN公開發布他們的數據庫,並可在他們的網站www.arin.net上搜索。在他們的WHOIS搜索框中輸入IP地址,您將看到誰擁有它。地理位置服務利用這些信息。 – Mark 2012-03-10 21:41:51

2

你正在談論的概念被稱爲地理位置。它的要點是有數據庫將IP地址映射到ISP和ISP到物理位置。這是我使用的谷歌搜索。

geo locate ip address 

此頁特別有趣,因爲它提供了一個很好的解釋和一些免費數據的來源。

http://www.iplocation.net/

好運。

+0

有關感謝信息的不錯網站。 – icaptan 2012-03-10 21:39:27