NTP Pool DNS Mapper
What is this?
The NTP Pool DNS Mapper tries mapping user IP addresses to their DNS servers (and vice-versa). It also tracks which servers support EDNS-SUBNET and how well that actually matches the client IP (as seen by the HTTP server). You can see a demo at mist.ntppool.org.
It's done to research how to improve the DNS system used by the NTP Pool and potentially other similar applications.
How can I help?
Thank you for asking! The easiest way to help is to help get more data.
If you have a website you can have your users help by adding one of the following two code snippets to your site.
1) Insert a simple image tag just before the </body> tag.
This will "run" on every page load and make two http requests.
<img src="//www.mapper.ntppool.org/none">
2) Insert a small javascript just before the </body> tag and
after any other scripts on your page. This requires javascript on the
end-user, but has the advantage of being cached and then only do a
single HTTP request for the "probe". The probe runs 3 seconds after
the page has loaded.
This is the better implementation if your users typically stay on
your site for more than a single pageview or two.
<script src="//www.mapper.ntppool.org/mapper.js"></script>
As an alternative you can copy the javascript from mapper.js into another script running on your site.
If your site gets more than 15 million requests a month, please send a note before adding the integration. The service is running both on HTTP and HTTPS.
API
Because it works with a simple HTTP request (sometimes plus a redirect)
you can use it to query your public IP address and the public IP of the
DNS server you used.
$ curl -fsL www.mapper.ntppool.org/json
{"DNS":"192.0.2.1","EDNS":"","HTTP":"198.51.100.2"}
If called from a webpage you can use
jsonp via the url
www.mapper.ntppool.org/jsonp?jsonp=functionName
You can see an example of this on the demo site.
When called on the hostname "www" the first response will be a redirect. You can see mapper.js for an example of how to avoid this. It is important that each request URL is unique.
If you use the API, please send me a note.
Privacy
The system logs the client IP address, the DNS server IP and information about the servers support for the EDNS-SUBNET extension. The country, region and AS number for the IP addresses is also logged. For each set of client and server IP address it also logs a time stamp for the first and most recent time the combination has been seen. Other (meta) data may be added in the future, but the goal of the project will remain to explore the relationship between DNS and client IPs; not in to track users or site behavior.
The user-agent, http referrer or other headers are not logged persistently. They may be logged temporarily for debugging purposes.
The system does not read or set any cookies. See above how the system uses an ephemeral unique identifier to track requests.
The data-set is not currently publically available and changing that will be carefully considered, but it's a possibility for the future. If you have a use case for the data that can help make the internet work better, get in touch.
Terms of service
The service is provided with absolutely no warranty or claims of suitability for anything. It is run on a best efforts basis.