There's huge demand for it - just search for geoip on Github. Some more pointers are here [0],[1]. So many projects, but most of them work with Maxmind data, which is the problem. Inconsistencies in the data they provide makes it painful to make performant fallback solutions. Performance across geolocations and lack thereof in "exotic" geos is another one. It seems none of these services is deployed across the globe. There's a need for a blazing fast, reliable service with granular, comprehensive data, that is performing well for millions of requests across the globe, be it for mobile or web traffic.
I found a great base[2] and I think Go is a perfect language for this kind of service.
Here are the free checkers I tested the other day, the IP is a good example for incomplete data:
checkers = [
'http://freegeoip.net/json/103.1.29.57',
'http://geoip.nekudo.com/api/103.1.29.57',
'http://ip-api.com/json/103.1.29.57',
'http://ipinfo.io/103.1.29.57/json',
'http://www.telize.com/geoip/103.1.29.57'
]
[0] http://ip-api.com/docs/statistics
[1] http://geuis.com/2012/09/21/jsonip-com-close-to-serving-10-m...
[2] https://github.com/fiorix/freegeoip