Longitude and latitude value from IP address
Is it possible to get the longitude and latitude value from IP address in asp.net开发者_开发百科? If it is possible, please let me know how can I get this.
MaxMind Geolite city is free. If it is not good enough, you can apparently upgrade to a more accurate paid-version. I can't speak for the quality of the paid version, as I have never used it.
If you like your SQL, download the CSV version. Load it into your database of choice, and query away.
The faster and space-efficient option is to download the file binary blob version of the same database, and then use the C# class to query it.
Alternatively, I have found ipinfodb.com to be useful. Query is by simple HTTP GET. For example, to geolocate stackoverflow.com try:
http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211
This will return an XML file containing latitude and longitude, that looks like:
<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>
Some VB.NET sample code is available at http://forum.ipinfodb.com/viewtopic.php?f=7&t=269
You can use a service such as: http://freegeoip.appspot.com/
It will not be completely accurate.
Here is a tutorial on consuming the service using ASP.Net.
Try IPInfoDB which, as far as I know, is free.
They provide downloadable databases, but the easiest solution seems to be the XML api. Examples provided are for php, but I'm sure it's equally accessible with ASP.Net.
http://www.iptolatlng.com/ works well for me because it gives me JSON output raw which I need for this app I'm working on.
There is another one as well: http://www.hostip.info/index.html
It has an api, might be interesting for you to have a look at.
If you are trying to access your location via a javascript client, then the geo location API available with HTML 5 is very very helpful.
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(geoLocationSuccess, geoLocationError);
}
geoLocationSuccess and geoLocationError are the callbacks for success and error, respectively.
function geoLocationSuccess(position){
alert('lat: ' + position.coords.latitude + ', lon: ' + position.coords.longitude);
}
精彩评论