Today Bert Huber from PowerDNS announced a new DNS-based geolocation service. Given an IP, it returns the corresponding latitude and longitude coordinates. Using it is simple; to look up the coordinates for IP address 188.8.131.52, just reverse the octets and query the TXT record for 184.108.40.206.geo.lua.powerdns.org. I don't see any official details from PowerDNS yet, just Bert's tweet, but based on the domain, the service appears to be using PowerDNS' Lua capabilities.
The usual caveats about geolocation apply:
$ dig +short TXT 220.127.116.11.geo.lua.powerdns.org "33.745800 -117.826202"
Despite that server living in Dallas, the coordinates that come back are for Tustin, CA. That's because the ARIN allocation for
18.104.22.168/21 points to a corporate address in Tustin. Any geolocator operating from MaxMind's data will make the same "mistake," so this isn't a shortcoming of the PowerDNS service specifically.
If you currently use a web-based geolocation API, especially if your existing solution uses MaxMind geodata, the new PowerDNS service looks like a viable replacement. Queries over DNS will almost always be faster than a web API, because UDP doesn't have the handshake overhead that TCP does, and DNS provides the potential for caching.