Is there any way to use any of the Google APIs to get the IP Geolocation of my User in Live time?
I think it will use the Analytics Database and that is the only one, that tracks my user at city level that actually is correct (Any other IP-Location-API that I could test shows my IP address nearly 200km away from my real location. Google shows it 200m(!) away!)
I want to know the Location of my User (At Browser side and transmit it to my Server or at Server side) to serve City dependent content. But I don't want to get my users one of these annoying pop ups asking for using GPS, so I want to use the IP address.
Any suggestions?
If you don't want to use HTML5 style client-enabled GeoIP information, you are going to need a GeoIP database like MaxMind's GeoIP Lite database, which is free and works well for 99% of use cases. Any other service with more accurate/detailed information is going to cost you a lot of money. MaxMind is praises by many people and works well for my needs, personally. It can give you Country/Region/City/Latitude-Longitude-Coordinates/Continent information.
You can use Google's geocoding API to get a real address for a location but the inputs required for that API are the latitude and longitude coordinates.
Example: http://maps.googleapis.com/maps/api/geocode/json?latlng=43.473,-82.533&sensor=false
You need to find and IP to Location API from some other vendor to get to a city level or keep the option to prompt them to grant you access for their geolocation.
IPInfoDB does a pretty good job at automatically narrowing down the location via IP without use input:
http://ipinfodb.com/ip_location_api.php
You can use Google's geolocation API to get the lat and lon based on the user's IP address:
Then you can use these coordinates to get the address of the user using the geocoding API. Here is an example that returns the country:
Above, just look through the
data.results
to find the information you need (City, Street, Country etc...) Use these two functions above together: