DNS

Nameserver and DNS host checker

See who hosts a domain’s DNS from its nameservers, and whether the registry’s own list still matches what the zone answers.

Free, no accountLive check

Try

Result

The verdict appears here once you press Check the nameservers.

What this is

Typing a domain in here answers who is my dns provider in one pass, by reading the hostnames its nameservers actually use and checking them against the list the registry has on file.

Every zone names its own authoritative nameservers in an NS record, and a registry keeps a separate copy of that same list to tell the rest of the internet where to send a query. The two are supposed to match; a provider migration that only updated one of them is exactly what shows up as a mismatch here.

A nameserver hostname often gives away who runs it, because most hosting providers put customers on nameservers under their own domain, like ns1.somehost.com. Matching that hostname against a list of known patterns is a strong hint, not a certificate - a hostname proves nothing about who actually operates the server behind it.

For what delegation actually means and how the SOA record sitting behind these nameservers governs a zone, see our blog guide "The DNS records a domain needs, and what each one actually does."

How to read the result

The table lines up every nameserver either side names, with a tick under "Registry" or "Zone" for whichever one actually lists it, so a name missing from one side is a glance away rather than something you have to diff by hand.

A nameserver named inside the domain’s own zone needs an address the registry itself holds, called glue, because nothing else can resolve it without creating a loop. A warning here about a missing address means that particular nameserver may not be reachable from outside at all.

Common mistakes

What goes wrong most often, and how to tell.

  • Trusting a hostname pattern as proof of the hostA nameserver hostname like ns1.somehost.com is a strong hint about who is likely running it, but it is read from the name alone. A reseller or a white-labelled panel can run its own nameservers under a name that matches nobody’s known pattern, or borrow one that does.
  • Assuming the registry and the zone always agreeChanging nameservers usually means updating the zone first and the registrar’s delegation second, or the other way round, and the two steps rarely land at the exact same moment. A mismatch right after a change is ordinary; one that persists for days points at a step that was never finished.
  • Forgetting glue exists for an in-domain nameserverA nameserver named inside its own zone cannot be looked up through the normal chain, because asking that zone to resolve its own nameserver is circular. The registry has to hold the address directly as glue, and a zone missing it is unreachable no matter how correct its records otherwise look.

Questions

What people ask about this tool.

  • The most common reason is a change in progress: one side of a nameserver update, either the zone’s own records or the registrar’s delegation, has already landed while the other has not caught up yet. It can also mean a change that was started and never finished.
  • It means the nameserver’s own name sits inside the very zone it serves, such as ns1.example.com for example.com. Resolving that name needs an address the registry holds directly as glue, since the zone cannot be asked to resolve its own nameserver without going in circles.
  • No. It only recognises a handful of common hosting patterns in the nameserver hostnames themselves, and plenty of legitimate setups use a hostname that matches none of them, which shows up here as "not recognised" rather than a wrong answer.
  • It works day to day, but it leaves the zone with no second path if that one nameserver becomes unreachable, which is exactly the redundancy running more than one server is meant to provide.

Sources

Every fixed value here comes from the provider’s own documentation. These pages change, so each says the day it was last read.

Use it from the API

The same check, as one request.

Request
curl -X POST https://resellerhq.com/api/tools/nameserver-dns-host-checker \
  -H "Content-Type: application/json" \
  -d '{"domain":"cloudflare.example"}'
Response
{
  "tool": "nameserver-dns-host-checker",
  "input": {
    "domain": "cloudflare.example"
  },
  "result": {
    "verdict": {
      "tone": "success",
      "headline": "cloudflare.example’s nameservers check out",
      "summary": "The registry and the zone agree on who serves this name."
    },
    "findings": [
      {
        "id": "host-identified",
        "severity": "pass",
        "title": "Hosted on Cloudflare",
        "detail": "Every nameserver cloudflare.example publishes matches the hostname pattern Cloudflare uses for its customers, so this is a reasonable guess at who hosts the zone’s DNS."
      },
      {
        "id": "registry-and-zone-agree",
        "severity": "pass",
        "title": "Registry and zone agree",
        "detail": "The nameservers cloudflare.example’s registry record lists are exactly the ones the zone itself answers with, so the delegation reads the same from both ends."
      }
    ],
    "parts": [
      {
        "kind": "table",
        "title": "Nameservers, registry against zone",
        "columns": [
          "Nameserver",
          "Registry (RDAP)",
          "Zone (NS)",
          "Host"
        ],
        "rows": [
          [
            "ns1.cloudflare.com",
            "✓",
            "✓",
            "Cloudflare"
          ],
          [
            "ns2.cloudflare.com",
            "✓",
            "✓",
            "Cloudflare"
          ]
        ],
        "mono": [
          0
        ],
        "note": "A dash means that side - the registry’s RDAP record or the zone’s own NS answer - does not carry this name."
      }
    ],
    "lookups": [
      {
        "label": "NS for cloudflare.example",
        "value": "ok: ns1.cloudflare.com., ns2.cloudflare.com."
      },
      {
        "label": "RDAP nameservers for cloudflare.example",
        "value": "ns1.cloudflare.com, ns2.cloudflare.com"
      }
    ],
    "limits": [
      "A DNS host named here comes from matching a nameserver’s own hostname against a list of known patterns, which is an inference about who likely runs it, not a statement the provider published itself.",
      "Glue - the address a registry holds for a nameserver that lives inside its own zone - only shows up in RDAP when the registry publishes an ipAddresses field for it, and plenty of registries simply do not; its absence from the answer is not proof the glue itself is missing."
    ]
  }
}

This example uses a name RFC 2606 reserves for documentation, ending in .example, .test, .invalid or .localhost. None of them is a real domain, and nobody can register one.

Resell the domains these records point at, at your own price, under your own brand.

Get started

Company names and logos are trademarks of their owners, shown only to identify each service.