是否可以从asp.net中的IP地址获取经度和纬度值?如果可能的话,请让我知道我怎样才能得到这个。
6 回答
MaxMind Geolite 城市是免费的。如果它不够好,您显然可以升级到更准确的付费版本。我无法评价付费版本的质量,因为我从未使用过它。
如果您喜欢您的 SQL,请下载CSV 版本。将其加载到您选择的数据库中,然后查询。
更快、更节省空间的选择是下载同一个数据库的文件二进制 blob 版本,然后使用C# 类进行查询。
或者,我发现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 示例代码可在http://forum.ipinfodb.com/viewtopic.php?f=7&t=269获得
试试IPInfoDB,据我所知,它是免费的。
他们提供可下载的数据库,但最简单的解决方案似乎是 XML api。提供的示例适用于 php,但我确信它同样可以通过 ASP.Net 访问。
http://www.iptolatlng.com/对我来说效果很好,因为它为我提供了我正在开发的这个应用程序所需的 JSON 输出。
还有另一个:http: //www.hostip.info/index.html
它有一个 api,可能对你来说很有趣。
如果您尝试通过 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);
}