MaxMind Geolite city是免费的.如果不够好,你显然可以升级到更准确的付费版本.我不能为付费版本的质量说话,因为我从未使用过它.
如果您喜欢SQL,请下载CSV version.将其加载到您 Select 的数据库中,然后进行查询.
更快、更节省空间的方法是,对同一个数据库执行download the file binary blob version次查询,然后使用the C# class进行查询.
或者,我发现ipinfodb.com是有用的.查询是通过简单的HTTP GET实现的.例如,对stackoverflow进行地理定位.试试看:
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