Accuracy of IP based GeoLocation varies depending on the database used to identify the user location. Seldom is the Geolocation an accurate representation because the information is based on the IP Address owners address in their registration. In some cases the ISP will lease a range of IPs, typically 5 or more, to a business and register the business’s address for those IPs.
Through GeoLocation, we can map IP addresses to the country, region, city, latitude/longitude, ISP, etc. All of this information is collected and stored in different database from different registrars. Some registrars may be very accurate in providing information about their IP, though some may enter not be updated or have incorrect data.
Rule of thumb: “the more aggregated and generic data you ask for the more precise will be the geo-localization”. Country location is much more precise (normally 90 to 95%) compared to the exact location of the user such as zip code/street address/building number etc. This higher precision is because of the IP address allocation and registration for each particular country (It varies from country to country) and because it’s based in most of the cases on provider position rather than user or company position.
So in short:
Locating the country/region has got the highest precision (95-99%)
Locating the city could be less accurate
Identifying the exact user location such as Zip code/building number is very in-accurate
The main reasons for this variation in result is because:
IP is traced from Provider or organization registration
Use of proxies by the user hides the exact location
Not updated data in the registrar IP database (whois information)
Here you can find an interesting university paper: Internet Geolocation and Evasion