DNS Zone File Parser
Paste a BIND zone file and see every record normalised to a full name with its effective TTL, plus duplicate, CNAME-clash and missing-dot warnings.
Parsed records
Paste a zone file — or load the sample — to see every record expanded to a full name with its effective TTL, plus any duplicate, CNAME-conflict or missing-trailing-dot problems.
What is the DNS Zone File Parser?
The DNS Zone File Parser reads a BIND-format zone file the way a name server does. It applies the $ORIGIN and $TTL directives, expands @ and relative names into fully qualified names, carries an omitted owner name forward onto the records below it, and joins multi-line SOA records wrapped in parentheses back into one row.
- Applies $ORIGIN and $TTL, and expands @ and relative names to full names
- Carries the omitted owner name forward and joins parenthesised multi-line records
- Shows the effective TTL for every record and whether it came from the record or from $TTL
- Flags duplicates, CNAME-plus-other-data clashes and targets missing a trailing dot
- Understands BIND duration syntax such as 1h, 30m and 2w
- CSV export of the normalised table — all parsing runs locally in your browser
How to use the DNS Zone File Parser
- 1
Paste your zone file into the box, comments and directives included, or click “Load sample zone” to see how it works.
- 2
Check the summary tiles for the detected $ORIGIN, the $TTL and how many problems were found.
- 3
Read the syntax errors and zone-level warnings, then scan the record table — rows with a problem are highlighted.
- 4
Copy or download the normalised records as CSV when you need them outside the browser.
About the DNS Zone File Parser
The DNS Zone File Parser reads a BIND-format zone file the way a name server does. It applies the $ORIGIN and $TTL directives, expands @ and relative names into fully qualified names, carries an omitted owner name forward onto the records below it, and joins multi-line SOA records wrapped in parentheses back into one row.
The result is a table you can actually audit: every record with its resolved name, the TTL it will really use and where that TTL came from. Alongside it the parser flags syntax errors, exact duplicates, names that hold a CNAME plus other data, and the classic mistake of writing mail.example.com without the trailing dot so it silently becomes mail.example.com.example.com.
Parsing happens entirely in your browser — the zone you paste is never uploaded and no lookup is performed. You can export the normalised records as CSV to diff them against another zone or feed them into a migration script.
Frequently asked questions
How do I check a DNS zone file for errors?
Paste it here and the parser reports unknown record types, missing data fields, unclosed parentheses, duplicate records and CNAME conflicts. It is not a replacement for named-checkzone, but it catches the mistakes that stop a zone loading without needing a server.
What does a missing trailing dot do in a zone file?
Any name that does not end in a dot is relative, so $ORIGIN is appended to it. Writing “MX 10 mail.example.com” inside example.com quietly produces mail.example.com.example.com. The parser shows you the expanded name so the mistake becomes obvious.
Why do some records have no name at the start of the line?
When a line begins with whitespace, the record inherits the owner name from the record above it. It is a normal space-saving convention, and the parser resolves it for you so every row in the table shows a full name.
What TTL applies when a record does not specify one?
The $TTL directive at the top of the file supplies it. Old versions of BIND fell back to the SOA minimum field instead, but modern BIND refuses to load a zone that has neither — the parser tells you which source each TTL came from.
Does this handle $INCLUDE and $GENERATE?
It warns about both rather than guessing. $INCLUDE points at another file that a browser cannot read, and $GENERATE expands to a range of synthesised records. Everything else in the file is still parsed normally.
Is the zone file I paste uploaded anywhere?
No. The parser is plain JavaScript running in your browser tab. Your zone data never leaves the device, which matters because a zone file is a map of your entire infrastructure.
Related tools
DNS Zone File Generator
Build a complete BIND zone file online: $ORIGIN, $TTL, a full SOA record with date-based serial, plus NS, A, AAAA, CNAME, MX, TXT and SRV rows.
DNS Record Generator
Generate correctly formatted zone-file lines for A, AAAA, CNAME, MX, TXT, NS, SRV and CAA records — with FQDN dots, priorities and TXT chunking handled for you.
PTR Record Generator
Build reverse-DNS PTR records for IPv4 and IPv6: in-addr.arpa and ip6.arpa names plus the ready-to-paste zone-file line. Pure formatting, no lookups.
SPF Record Generator
Create a valid SPF TXT record from your sending IPs, includes and mail servers — with live DNS-lookup counting against the 10-lookup limit. Free and private.
Email Header Analyzer
Paste raw email headers to trace the delivery path hop by hop, see where mail stalled, and read the SPF, DKIM and DMARC verdicts — all offline.