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.


Solution 1:

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

Solution 2:

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.

Solution 3:

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.

Solution 4:

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.