| # | Metric | Value | Notes | |
|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.metric }} | {{ row.value || '-' }} | {{ row.note || '-' }} |
| # | Category | Check | Status | Notes | |
|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.category }} | {{ row.label }} | {{ row.status }} | {{ row.note || '-' }} |
| # | Type | RCODE | AD | Answers | Authority | Additional | Flags | Query ms | |
|---|---|---|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.type }} | {{ row.status === null ? row.rcode : `${row.rcode} (${row.status})` }} | {{ row.ad ? 'Yes' : 'No' }} | {{ row.answers }} | {{ row.authority }} | {{ row.additional }} | {{ row.flags || '-' }} | {{ row.ms === null || row.ms === undefined ? '-' : row.ms }} |
| # | Type | Records | Unique Names | Unique Values | TTL Min | TTL Avg | TTL Max | Sections | |
|---|---|---|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.type }} | {{ row.count }} | {{ row.uniqueNames }} | {{ row.uniqueData }} | {{ row.ttlMin === null || row.ttlMin === undefined ? '-' : row.ttlMin }} | {{ row.ttlAvg === null || row.ttlAvg === undefined ? '-' : row.ttlAvg.toFixed(2) }} | {{ row.ttlMax === null || row.ttlMax === undefined ? '-' : row.ttlMax }} | {{ formatSectionSummary(row.sections) }} |
| # | Type | Name | Summary | Details | |
|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.type }} | {{ row.name || '-' }} | {{ row.summary || '-' }} | {{ row.details || '-' }} |
| # | Host | Sources | Types | Answer | TTL | Notes | |
|---|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.host }} | {{ row.sources || '-' }} | {{ row.types || '-' }} | {{ row.answer || '-' }} | {{ row.ttl || '-' }} | {{ row.note || '-' }} |
| # | Host | Sources | Types | Answer | TTL | Scope | Notes | |
|---|---|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.host }} | {{ row.sources || '-' }} | {{ row.types || '-' }} | {{ row.answer || '-' }} | {{ row.ttl || '-' }} | {{ row.scope || '-' }} | {{ row.note || '-' }} |
| # | IP | PTR Name | Hostnames | TTL | Notes | |
|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.ip }} | {{ row.ptrName || '-' }} | {{ row.hostnames || '-' }} | {{ row.ttl || '-' }} | {{ row.note || '-' }} |
| # | Section | Type | Name | TTL | Data | |
|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.section }} | {{ row.type }} | {{ row.name || '-' }} | {{ row.ttl === null || row.ttl === undefined ? '-' : row.ttl }} | {{ row.data || '-' }} |
| # | Probe | Name | Types | Answer | TTL | Notes | |
|---|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.kind }} | {{ row.name }} | {{ row.types || '-' }} | {{ row.answer || '-' }} | {{ row.ttl || '-' }} | {{ row.note || '-' }} |
Domain Name System records are the public signposts that tell devices where a site, email, or service lives and how to reach it reliably. When something breaks, a Domain Name System record lookup for a domain can reveal whether the name points to the right place or if it drifts between answers.
You provide a domain name, a host name, or a numeric address and the page returns an inventory of published records along with timing and summary counts. It also highlights common configuration gaps, so you can spot missing mail policies or unexpected redirects without digging through separate lookups.
For example, if messages are bouncing you can confirm which mail exchangers are listed, whether sender policy text is present, and whether related host names resolve to addresses. Results should be treated as a snapshot because caching and resolver choice can change what you see from minute to minute. A clean looking record set still does not prove that the service behind it is reachable or correctly configured.
Choose this when you want a broad picture across many record types rather than checking one type at a time. For the clearest comparisons, run the same target twice with the same settings, then repeat after you publish a change and watch how time to live values settle.
If your target list includes internal names, treat them as sensitive and avoid sharing outputs widely. Only enumerate domains you own or have permission to assess.
The Domain Name System (DNS) answers questions like “what address should this name use” by returning resource records grouped into sections such as Answer, Authority, and Additional. Each record includes a Time To Live (TTL) value in seconds, which is a caching hint that influences how quickly changes show up.
This enumerator sends DNS over HTTPS (DoH) queries to a selected resolver and collects response codes, flags, counts per section, and the elapsed query time in milliseconds. From those raw responses it builds a single record inventory and computes summaries such as unique names, unique values, records per type, and TTL and timing statistics.
Several record types are parsed into human friendly fields to make patterns easier to spot, including Start Of Authority (SOA), Mail Exchanger (MX), Service (SRV), Certification Authority Authorization (CAA), Naming Authority Pointer (NAPTR), and Service Binding (SVCB) and HTTPS service records. Optional checks also look for common email authentication records such as Sender Policy Framework (SPF), Domain-based Message Authentication, Reporting, and Conformance (DMARC), Mail Transfer Agent Strict Transport Security (MTA-STS), TLS Reporting (TLS-RPT), and DomainKeys Identified Mail (DKIM) selectors.
Interpret results as a point in time rather than a guarantee. Different resolvers and caches can surface different answers, wildcard DNS can make many names appear to exist, and some records describe intent but do not prove that a service is reachable.
| Symbol | Meaning | Unit or datatype | Source |
|---|---|---|---|
TTL |
Per record Time To Live value. | seconds | Derived from DNS answers |
N |
Number of records with a numeric TTL. | integer | Derived |
ms |
Per query elapsed time measured around a DoH request. | milliseconds | Derived from timing |
M |
Number of queries with a measured elapsed time. | integer | Derived |
RCODE |
DNS response code mapped to a label. | integer or text | Derived from responses |
AD |
Authenticated Data flag reported by the resolver. | boolean | Derived from responses |
DO |
DNSSEC OK bit requested on DoH queries. | boolean | Input, with an automatic override |
CD |
Checking Disabled bit requested on DoH queries. | boolean | Input |
Suppose the inventory contains two answers and you want to understand the summary numbers that appear in the overview.
A lower TTL usually means changes propagate faster but caches refresh more often, and higher query times can point to resolver reachability issues.
| Code | Label | Meaning |
|---|---|---|
| 0 | NOERROR |
The resolver returned an answer set, which may still be empty. |
| 1 | FORMERR |
The query was malformed for the resolver. |
| 2 | SERVFAIL |
The resolver failed while trying to answer. |
| 3 | NXDOMAIN |
The name does not exist in DNS. |
| 4 | NOTIMP |
The resolver does not implement the requested operation. |
| 5 | REFUSED |
The resolver refused the query, often due to policy. |
| Status | Interpretation | Action cue |
|---|---|---|
PASS |
The record pattern was found as expected. | Use it as a baseline for later runs. |
WARN |
A risky condition was detected, such as wildcard answers or missing AD responses. | Double check with another resolver and confirm intent. |
FAIL |
The expected record pattern was not found. | Verify the zone contents and confirm propagation. |
| Parameter | Meaning | Unit or datatype | Typical range | Sensitivity | Notes |
|---|---|---|---|---|---|
target |
Domain, hostname, or IP address to query. | text | Valid DNS name or IP | High | Only the first non blank line is processed. |
resolver |
DNS over HTTPS provider selection. | enum | auto, cloudflare, google | Medium | Auto tries Cloudflare then Google. |
timeout_ms |
Abort a request after this many milliseconds. | ms | 0 and up | Medium | 0 means no extra timeout beyond network defaults. |
do_flag |
Request DNSSEC records using the DO bit. | boolean | true or false | Low | Forced on automatically when DNSSEC record queries are enabled. |
cd_flag |
Disable DNSSEC checking using the CD bit. | boolean | true or false | Low | Useful for debugging validation failures. |
include_services |
Query service related record types at the apex name. | boolean | true or false | Low | Adds SRV, NAPTR, SVCB, and HTTPS. |
include_dnssec |
Query DNSSEC related record types. | boolean | true or false | Low | Adds DNSKEY, DS, RRSIG, NSEC, and NSEC3. |
include_security |
Query security related record types. | boolean | true or false | Low | Adds TLSA, SSHFP, and OPENPGPKEY. |
include_email |
Check common email authentication and reporting TXT records. | boolean | true or false | Medium | Also supports optional DKIM selector checks. |
discover_ct |
Discover subdomains using Certificate Transparency sources. | boolean | true or false | Medium | Queries external discovery services when enabled. |
discover_wordlist |
Probe a wordlist of common subdomains. | boolean | true or false | Medium | Generates candidate names from a configurable list. |
max_discovery |
Cap how many discovered hostnames are resolved. | integer | 0 and up | High | 0 removes the local cap, but discovery sources still have limits. |
resolve_targets |
Resolve hostnames referenced by other records. | boolean | true or false | Medium | Looks at NS, MX, SRV, SVCB, HTTPS, CNAME, and SOA targets. |
wildcard_check |
Test a random subdomain for wildcard answers. | boolean | true or false | Medium | Uses a random label and queries A, AAAA, and CNAME. |
reverse_ptr |
Reverse resolve unique A and AAAA addresses to PTR. | boolean | true or false | Medium | Builds in-addr.arpa or ip6.arpa names and queries PTR. |
reverse_ptr_limit |
Cap how many IPs are reverse resolved. | integer | 0 and up | Medium | 0 means no limit. |
| Constant | Value | Unit | Source | Notes |
|---|---|---|---|---|
CORE_TYPES |
8 | types | Constant | A, AAAA, CNAME, MX, NS, SOA, TXT, CAA. |
SERVICE_TYPES |
4 | types | Constant | SRV, NAPTR, SVCB, HTTPS. |
SECURITY_TYPES |
3 | types | Constant | TLSA, SSHFP, OPENPGPKEY. |
DNSSEC_TYPES |
5 | types | Constant | DNSKEY, DS, RRSIG, NSEC, NSEC3. |
DEFAULT_HOST_PROBES |
60 | labels | Constant | Common host labels used for wordlist discovery and optional probes. |
DEFAULT_SRV_PROBES |
18 | labels | Constant | Common SRV service labels such as _sip._tcp and _submission._tcp. |
resolve concurrency |
6 | workers | Constant | Used for resolving discovered hosts, target hosts, and PTR lookups. |
CT page cap |
10 | pages | Constant | Maximum pages fetched when paginating a certificate log source. |
| Field | Type | Min | Max | Step or pattern | Error text | Placeholder |
|---|---|---|---|---|---|---|
| Target | text | 1 | 253 | Domain or hostname, underscores allowed, or IPv4 or IPv6 | Enter a domain, hostname, or IP address. Enter a valid domain or hostname. | example.com or 8.8.8.8 |
| Resolver | enum | - | - | auto, cloudflare, google |
- | auto |
| Timeout | number | 0 | - | Step 100 | - | 3500 |
| Max discovered hosts | number | 0 | - | Step 10 | - | 200 |
| Max PTR lookups | number | 0 | - | Step 10 | - | 60 |
| DKIM selectors | text | 0 | - | Comma or space separated tokens | - | default, selector1 |
| Wordlist and hostnames | text | 0 | - | Comma or newline separated labels or full hostnames | - | www, mail, api |
| SRV list | text | 0 | - | Comma or newline separated service labels | - | _sip._tcp, _submission._tcp |
| Input | Accepted families | Output | Encoding and precision | Rounding |
|---|---|---|---|---|
| Target text | Domain, hostname, IPv4, IPv6, URL, email, host and port | Normalized hostname or PTR name | Unicode converted to ASCII when possible | Not applicable |
| DNS answers | Answer, Authority, Additional sections | Record inventory and parsed details | TXT quotes removed, many names trimmed of trailing dots | Not applicable |
| Timing metrics | Per query elapsed time | Total, min, max, average query time | Milliseconds, numeric | Per query times are rounded to integers |
| Exports | Tables and a structured payload | Clipboard copies and downloadable files | Pretty printed JSON uses two space indentation | Displayed TTL averages use two decimals |
Most work is network bound. The base request count is the number of queried record types, which is 8 core types plus any enabled families, and each discovered or referenced hostname adds three lookups for A, AAAA, and CNAME.
Identical inputs can yield different outputs across time because caches expire, certificate logs update, and wildcard tests use a random label. Within a single run, a sequence guard prevents late responses from overwriting a newer run after you cancel or restart.
Record meanings and flags follow common IETF DNS conventions, while email policy checks follow widely used SPF, DMARC, DKIM, MTA-STS, and TLS-RPT conventions.
Requests are made from the browser to the chosen resolver and optional discovery sources, results are not written to local storage by this package, and use should be limited to authorized targets.
Domain record enumeration is easiest when you start with the core name, then expand outward to related hosts and policies until the picture matches what you intended.
Enter example.com, keep auto resolver, then review the checks for NS and SOA presence and scan the type summary for CNAME, MX, and TXT patterns.
Pro tip: keep one known good baseline run and compare future changes against it before chasing noise.
The page sends your target to the selected public resolver and, if enabled, certificate discovery sources. The package does not write to local storage, and results remain in memory unless you export them.
Results reflect what one resolver answered at one moment. Caches, resolver policy, and wildcard DNS can change what appears, so compare multiple runs and switch resolvers before concluding a record is missing.
You can paste a domain, hostname, IPv4, IPv6, URL, email address, or host and port string. Only the first non blank line is processed, and the tool normalizes the input to a hostname before querying.
No. Enumeration depends on live DNS over HTTPS queries and optional discovery calls, so you need network access to the configured endpoints.
If your network blocks public resolvers, choose another network or use a permitted resolver.WARN indicates a condition worth double checking, such as wildcard answers or missing AD flags. It is a prompt to verify intent and confirm with a second resolver, not an automatic failure.
Keep email checks enabled and review the DMARC finding. The tool queries the TXT name _dmarc.<domain>, looks for v=DMARC1, and extracts the policy value if present.
The app does not include a purchase flow or license key prompt. Redistribution and reuse depend on the license terms that came with the package you received.
NO RESPONSE, try switching the resolver or increasing the timeout.If every query shows no response, your network may be blocking public DoH endpoints. Try a different network or adjust security filters to allow the resolver you selected.