经IP地址的经纬度值

是否有可能从asp.net中的IP地址获取经纬度值? 如果可能的话,请告诉我如何得到这个。

MaxMind Geolite城市是免费的 。 如果不够好,你可以升级到一个更准确的付费版本。 我不能说付费版本的质量,因为我从来没有使用它。

如果你喜欢你的SQL,请下载CSV版本 。 将其加载到您select的数据库中,然后查询。

更快,更节省空间的select是下载相同数据库的文件二进制blob版本 ,然后使用C#类进行查询。

另外,我发现ipinfodb.com是有用的。 查询是通过简单的HTTP GET。 例如,要geolocate stackoverflow.com尝试:

http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211 

这将返回一个包含经度和纬度的XML文件,如下所示:

 <Response> <Ip>69.59.196.211</Ip> <Status>OK</Status> <CountryCode>US</CountryCode> <CountryName>United States</CountryName> <RegionCode>41</RegionCode> <RegionName>Oregon</RegionName> <City>Corvallis</City> <ZipPostalCode>97333</ZipPostalCode> <Latitude>44.4698</Latitude> <Longitude>-123.343</Longitude> </Response> 

一些VB.NET示例代码可以在http://forum.ipinfodb.com/viewtopic.php?f=7&t=269

您可以使用以下服务: http : //freegeoip.appspot.com/

这不会是完全准确的。

这里是一个使用ASP.Net使用服务的教程。

尝试IPInfoDB ,据我所知,它是免费的。

他们提供可下载的数据库,但最简单的解决scheme似乎是XML API。 提供的例子是用于PHP,但我相信它可以通过ASP.Net同样访问。

还有一个: http : //www.hostip.info/index.html

它有一个API,可能是有趣的,你看看。

如果您尝试通过JavaScript客户端访问您的位置,那么HTML 5提供的地理位置API非常有帮助。

 if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(geoLocationSuccess, geoLocationError); } 

geoLocationSuccess和geoLocationError分别是成功和错误的callback。

 function geoLocationSuccess(position){ alert('lat: ' + position.coords.latitude + ', lon: ' + position.coords.longitude); }