是否可以从asp.net的IP地址获取经度和纬度值? 如果有可能,请告诉我如何才能得到这个。
答案 0 :(得分:33)
MaxMind Geolite city是免费的。如果不够好,您显然可以升级到更准确的付费版本。我不能说付费版本的质量,因为我从未使用它。
如果您喜欢SQL,请下载CSV version。将其加载到您选择的数据库中,然后查询。
更快,更节省空间的选项是同一数据库的download the file binary blob version,然后使用the C# class进行查询。
或者,我发现ipinfodb.com有用。查询是通过简单的HTTP GET进行的。例如,要对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示例代码
答案 1 :(得分:2)
答案 2 :(得分:2)
尝试IPInfoDB,据我所知,这是免费的。
它们提供可下载的数据库,但最简单的解决方案似乎是XML API。提供的示例是针对php的,但我确信它与ASP.Net同样可以访问。
答案 3 :(得分:1)
http://www.iptolatlng.com/对我很有用,因为它为我提供了我正在处理的这个应用所需的JSON输出原始数据。
答案 4 :(得分:0)
还有另一个:http://www.hostip.info/index.html
它有一个api,你可能会对它有所了解。
答案 5 :(得分:0)
如果您尝试通过javascript客户端访问您的位置,那么HTML 5提供的地理位置API非常有用。
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(geoLocationSuccess, geoLocationError);
}
geoLocationSuccess和geoLocationError分别是成功和错误的回调。
function geoLocationSuccess(position){
alert('lat: ' + position.coords.latitude + ', lon: ' + position.coords.longitude);
}