Please record the user's recursive resolver, since that's important information to determine censorship.
It's not easy to implement, but it's possible. It requires a special authoritative resolver that maps special domain names to recursive resolvers, then makes the information available via an API. It's probably easier if both the resolve and the API run on the same server.
Steps:
Pick a domain to use. For example *.recursivelookup.ooni.org
Run an authoritative DNS resolver, and configure it as the authoritative for the subdomain
In the web probe, generate a long unique id, and use it to fetch https://<random_id>.recursivelookup.ooni.org/ from the client's browser.
This will first trigger a client-side domain resolution that will hit your authoritative via the recursive. Store the recursive AS information under the "random_id" key. Return the server's own IP as the DNS question answer.
The client will follow up with the HTTPS request to https://<random_id>.recursivelookup.ooni.org/. Return the recursive IP information that you stored. Now the probe knows what resolver the user is using!
Please record the user's recursive resolver, since that's important information to determine censorship.
It's not easy to implement, but it's possible. It requires a special authoritative resolver that maps special domain names to recursive resolvers, then makes the information available via an API. It's probably easier if both the resolve and the API run on the same server.
Steps:
*.recursivelookup.ooni.org
https://<random_id>.recursivelookup.ooni.org/
from the client's browser.https://<random_id>.recursivelookup.ooni.org/
. Return the recursive IP information that you stored. Now the probe knows what resolver the user is using!