2012-03-10 61 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