Developer

DNS Lookup Tool

Query public DNS records with SSRF-safe hostname validation

Loading interactive tool…

Embed this tool on your site

About this tool

DNS Lookup Tool on UtilityKit queries DNS records for any public hostname from your browser — no terminal or dig command needed. Enter a hostname, pick a record type and click Lookup. The UtilityKit backend resolves the name with its own recursive resolver and returns the answer, shown as a table with a collapsible Raw JSON view. Six record types are supported: A (IPv4 addresses), AAAA (IPv6 addresses), MX (mail servers, sorted by priority), TXT (SPF, DMARC, DKIM and verification strings, with multi-part strings joined), NS (nameservers) and CNAME (the direct alias target of a name). Results do not include TTL values. Because the query runs on the server, the hostname you enter is sent to UtilityKit. The backend rejects localhost-style names (localhost, .local, .internal) and private or loopback IP literals.

Why use it

  • No Terminal Required: Look up DNS records from any browser without installing dig or nslookup. Works on desktop and mobile.

  • Six Common Record Types: Query A, AAAA, MX, TXT, NS and CNAME records from one dropdown and switch types without clearing the hostname.

  • Readable Results: Records appear in a labelled table — MX rows sorted by priority, TXT strings joined into one line — with the raw JSON one click away.

  • Outside View: Queries run from the UtilityKit server, not your device, so you can compare what an outside resolver returns with your local or corporate DNS.

  • Email Authentication Checks: Enter _dmarc.yourdomain or selector._domainkey.yourdomain as the hostname to read DMARC and DKIM TXT records directly.

  • Guarded Backend: Localhost-style names and private or loopback IP literals are rejected before any query runs.

How to use

  1. Enter a hostname without a scheme or path — for example, utilitykit.tools or _dmarc.example.com.
  2. Pick the record type: A, AAAA, MX, TXT, NS or CNAME.
  3. Click Lookup. The hostname is sent to the UtilityKit backend, which resolves it and returns the matching records.
  4. Read the table: addresses for A and AAAA, priority and mail exchange for MX, the full text for TXT, and the nameserver or canonical name for NS and CNAME. The line above it shows how many records were found.
  5. Open Raw JSON to see the exact response, or change the record type and click Lookup again without retyping the hostname.

When it helps

  • When you have just updated an A or AAAA record and want to see whether the new address is returned by a resolver outside your own network.
  • When debugging mail delivery failures by checking MX records and their priority order to confirm the correct mail exchange servers are listed and ranked correctly.
  • When verifying an SPF policy, DMARC policy, or domain ownership TXT record has been added correctly by the DNS administrator — especially useful after delegating DNS management to another team.
  • When auditing CNAME chains on a CDN or load balancer configuration to confirm the alias resolves to the expected canonical hostname without unexpected intermediate hops.
  • When checking nameserver delegation after a domain transfer — NS records confirm which nameservers are authoritative and whether the registrar update has propagated.
  • When you suspect DNS tampering on your local network and need a second view of the records from outside it.

Examples

A record lookup — Raw JSON (illustrative address)

Input
Hostname: example.com | Type: A
Expected result
{
  "hostname": "example.com",
  "type": "A",
  "records": [
    "203.0.113.10"
  ]
}

MX records — Raw JSON (illustrative hosts)

Input
Hostname: example.com | Type: MX
Expected result · Scroll for more
{
  "hostname": "example.com",
  "type": "MX",
  "records": [
    {
      "exchange": "mx1.example.com",
      "priority": 10
    },
    {
      "exchange": "mx2.example.com",
      "priority": 20
    }
  ]
}

TXT record showing an SPF policy — Raw JSON (illustrative values)

Input
Hostname: example.com | Type: TXT
Expected result
{
  "hostname": "example.com",
  "type": "TXT",
  "records": [
    "v=spf1 include:_spf.example.net ~all",
    "site-verification=abc123"
  ]
}

Tips

  • Before changing a critical record like an A record or MX record, lower the TTL to 300 seconds (5 minutes) and wait for the current TTL to drain. This limits propagation delay after the actual change.
  • To check DMARC, query a TXT record for the subdomain _dmarc.yourdomain.com — for example, _dmarc.utilitykit.tools. DMARC records always live on that _dmarc subdomain, not the root domain.
  • DKIM public keys are published under the pattern selector._domainkey.yourdomain.com. Query TXT records for that subdomain using your actual selector name, which is typically shown in your email provider's DKIM setup instructions.
  • When debugging CNAME chains, follow each step manually — query the CNAME to get the target hostname, then query A records for that hostname. This reveals whether the chain terminates at the expected IP.
  • NS record results tell you which nameservers are authoritative for the domain. If the NS records point to unexpected nameservers after a registrar transfer, the zone may not have been re-delegated correctly.

Frequently Asked Questions

What is the difference between an A record and a CNAME record?
An A record maps a hostname directly to an IPv4 address. A CNAME record maps a hostname to another hostname (an alias), and the resolver then looks up the target hostname to find the final IP address. CNAME records introduce an extra resolution hop but are commonly used for CDN and load balancer configurations where the target IP is managed by the provider.
Why might the result differ from what I see locally?
DNS answers are cached at several layers — your OS, your router and your ISP's resolver — and the UtilityKit server's resolver has its own cache. Each cache keeps an answer until its TTL runs out, so two resolvers can briefly disagree after a change. This tool does not display TTLs; wait for the old TTL to expire or flush your local cache to reconcile differences.
What is TTL in DNS?
TTL (Time To Live) is the number of seconds a DNS record can be cached by resolvers before they must re-query the authoritative nameserver. A TTL of 300 means resolvers cache the record for 5 minutes. Lower TTLs allow faster propagation of DNS changes; higher TTLs reduce load on authoritative nameservers.
Why do TXT records contain SPF, DKIM, and DMARC data?
TXT records are a general-purpose text container at the DNS level, so email authentication standards like SPF, DKIM, and DMARC all use TXT records to publish their policies. SPF records typically look like 'v=spf1 include:... ~all', DMARC records start with 'v=DMARC1', and DKIM public keys are published under a subdomain selector._domainkey.example.com.
What is an MX record priority and how does it work?
MX records include a priority value (lower number = higher priority). When sending mail to a domain, a sending mail server queries MX records and connects to the server with the lowest priority number first. If that server is unavailable, it tries the next lowest priority. This enables primary and fallback mail server configurations.
Can I look up subdomains?
Yes. Enter the full subdomain hostname — such as mail.example.com, _dmarc.example.com, or www.example.com — exactly as you would in a dig command. The tool resolves whatever hostname you provide against the public DNS.
Why are private and localhost addresses blocked?
SSRF (Server-Side Request Forgery) protection prevents the backend from being used to probe internal network services. Allowing lookups for 192.168.x.x, 10.x.x.x, or localhost would let external users query internal infrastructure through the UtilityKit server. All such ranges are blocked before resolution.
How long does DNS propagation take after a change?
Propagation time depends on the TTL of the old record. If the old A record had a TTL of 3600 seconds (one hour), resolvers that cached it at its last refresh may serve it for up to another hour after the change. Lowering TTL to 300 before making a change (and waiting for the old TTL to expire) is standard practice for minimal-downtime migrations.

Explore the category

Glossary

A Record
A DNS record type that maps a hostname to an IPv4 address. The most fundamental record type — querying example.com for its A record returns the server's IP address.
MX Record
Mail Exchange record — specifies the mail server responsible for accepting email for a domain, along with a priority number. Lower priority numbers indicate preferred mail servers.
TXT Record
A general-purpose DNS record that stores arbitrary text strings. Used for email authentication policies (SPF, DKIM, DMARC), domain ownership verification, and service configuration hints.
CNAME Record
Canonical Name record — an alias that maps one hostname to another. The resolver follows the chain until it reaches an A or AAAA record with an actual IP address.
TTL (Time To Live)
The number of seconds a DNS record can be cached by resolvers before they must re-query the authoritative nameserver. Controls how quickly DNS changes propagate globally.
Authoritative Nameserver
The DNS server that holds the definitive, original records for a domain zone. Recursive resolvers ultimately fetch data from authoritative nameservers after following the delegation chain from root to TLD to domain.
A LITTLE HELP. A LOT DONE.
Good tools.
Great flow.

Your shortcut to the everyday. Create, convert, calculate,
and get back to what you love.

✓ Free to use✓ No sign-up✓ 500+ possibilities