2

I have noticed that Groupon.com or Zillow.com knows what city I am located in quite reliably and without asking permission.

Does anyone know what they or similar big players do to get your location? Are they using private ip-based databases or something else?

I need to know what city a user is in, are there any online services that I can use to get a user's location for free?

  • 1
    There is an inherent error rate in any GEOIP database. This is because of the heavy reliance on self-reporting by telecoms, hosting companies, and so on. The rest is extrapolated using a triangulation method and distance estimations based upon ping. In your case, it may be that your telecom is reporting locations accurately. As for me, apparently, I can be in Ohio, Pennsylvania, New York, Florida, and sometimes in New Jersey and others. You can use the GEOIP Lite database at: maxmind.com/en/opensource – closetnoc Jan 22 '15 at 16:22
2

They are most likely using geolocation by IP address or hostname.

There are many services that provide data for this. One that I know of that's easy to use is http://freegeoip.net. They have an API that you can call 10,000 times per hour to get geolocation data.

For example, if you make an HTTP GET request to http://freegeoip.net/json/stackoverlow.com, you can get data back in multiple formats. This example returns JSON:

{
    "ip": "69.172.201.208",
    "country_code": "US",
    "country_name": "United States",
    "region_code": "NY",
    "region_name": "New York",
    "city": "New York",
    "zip_code": "10004",
    "time_zone": "America/New_York",
    "latitude": 40.689,
    "longitude": -74.021,
    "metro_code": 501
}

Not the answer you're looking for? Browse other questions tagged or ask your own question.