$this = (new Soapbox())->shout(array_map('strtoupper', $opinions)); //Shaun's blog

A new DNS geolocation service from PowerDNS

Posted December 24, 2017 by shaun

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, just reverse the octets and query the TXT record for 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
"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 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.

Recent articles

📰 Evaluating DNSBL Effectiveness with Postfix Logs

📰 Russian/Ukrainian Referer Spam Campaign IPs

📰 Resolving subversion error E145001: Node has unexpectedly changed kind

📰 Installing PHP 7.2 with pthreads on CentOS 6

📰 LocalStorage kills another site, or: Working around Zap2it's new interface

📰 A new DNS geolocation service from PowerDNS

📰 Firefox's privacy.resistFingerprinting option reports a very old User-Agent (50.0)

📰 Undefined symbol "Py_InitModule4_64" while upgrading harfbuzz

📰 ipid.shat.net is back online for now

📰 Implementing a report-uri endpoint for Expect-CT (and other headers)

📰 A curious UDAP packet from DirecTV hardware

📰 Secure PHP file inclusion based on query string parameters

▲ Back to top | Permalink to this page