Documentation
One page per test: what it does, a worked example, and how to read what came back.
Interference
Is anything between you and us changing the answer?
The one test to run first: a fixed answer that never changes.
Echoes back the address you embedded in the name.
The same resolver, listening on UDP/10053.
A name that is guaranteed not to exist.
Not a nameserver. Any reply from it is manufactured.
Reconnaissance
What does your query look like by the time it reaches us, and who sent it?
Returns the IP address that asked the question, which is not always yours.
Pins whether your query reaches us over IPv4 or IPv6. Aim at ipv4.dnsp.co or ipv6.dnsp.co instead of dnsp.co, and pair it with reflect to see which address we saw.
The server's own list of every option it answers, straight from the running server rather than from this site.
Your request handed back to you as hex.
Privacy
What your resolver tells us about you without being asked.
Caching
Are you reading a live answer or a stored one?
Resolver behaviour
What your resolver does on your behalf, privacy, validation, limits.
As many answers as you ask for, up to 255.
What the last machine in the chain negotiated with us.
Whether your resolver told us part of your address.
Whether your resolver randomises capitalisation.
Whether your query arrived encrypted.
Whether your resolver sends only what each server needs.
You set the lifetime. We report whether it was respected.
An answer of deliberately the wrong type.
The control case for the mismatch test.
Three signed names: one correct, one corrupted, one expired.
The only test that performs a real lookup.