DNS Zone Parser
Inspect a supported BIND zone text subset
Parse a common BIND text subset: $ORIGIN, $TTL, omitted owners, TTL units and A/AAAA/NS/CNAME/PTR/MX/SRV/SOA/TXT/CAA. CH/HS supports TXT only. No $INCLUDE/$GENERATE expansion, whole-zone validation or DNS queries. Limit: 1 MiB and 10,000 records. Without $TTL, a previous explicit TTL can be inherited; legacy SOA-minimum fallback is not implemented. Relative names inside RDATA keep their original spelling.
This tool processes input in the page, does not request embedded addresses, and does not save input drafts. Site analytics records actions and summary information only.
The full guide also includes pitfalls, worked examples, snippets, FAQs, and related tools for checking results or troubleshooting.
About this tool
Parse a common BIND text subset into a record table and CSV. Supported types are A, AAAA, NS, CNAME, PTR, MX, SRV, SOA, TXT and CAA; CH/HS classes support TXT only. The parser handles $ORIGIN, $TTL, leading-whitespace owner inheritance, TTL units and escaped quoted strings. TTLs are shown in seconds; without $TTL a previous explicit TTL can be inherited, but legacy SOA-minimum fallback is not implemented. Original RDATA spelling is retained with field whitespace normalized, including relative names within RDATA. $INCLUDE, $GENERATE and other unsupported syntax are rejected. Limits are 1 MiB and 10,000 records. This does not validate a complete authoritative zone, DNSSEC, propagation or resolver answers. Inputs are processed in the page without DNS requests or saved input drafts; site analytics records actions and summary information.
Failure Clinic (Common Pitfalls)
Expecting an included file or generated records to appear
Cause: $INCLUDE and $GENERATE require behavior beyond this local parser’s supported subset.
Fix: Supply the expanded records, or run your DNS server’s zone-checking tools. The parser rejects unsupported directives explicitly.
Treating a parsed table as a DNS deployment approval
Cause: Record syntax checks do not establish authoritative-zone consistency, propagation, delegation or DNSSEC validity.
Fix: Review the exported data, then validate the complete configuration with the software that will serve it.
Scenario Recipes
Check owners and TTLs before comparing two exports
Goal: Turn a supported zone fragment into a table without losing owner, class or quoted TXT data.
- Set $ORIGIN and $TTL in the input, or enter an initial origin when the fragment needs one.
- Parse and compare the resolved Host, TTL in seconds, Class and original RDATA presentation.
- Copy/download CSV for a record comparison. Use your authoritative DNS software for complete-zone validation before publishing.
Result: A table of supported records with original source line numbers; relative names inside RDATA remain as written.
Production Snippets
A record owner can itself be named A
text
$ORIGIN example.test.
$TTL 1h
A 30m IN A 192.0.2.1
IN AAAA 2001:db8::1
@ IN TXT "literal (parentheses); kept"
Owners: A.example.test., A.example.test., example.test.
TTLs: 1800, 3600, 3600 seconds.
The leading whitespace on the AAAA line reuses the previous owner.Frequently Asked Questions
Does this validate a complete BIND zone?
No. It parses and checks the documented record subset. Use the DNS server’s own checker for full-zone consistency, includes, generated records and deployment validation.
How are omitted owners and relative origins handled?
A record starting with whitespace inherits the previous fully resolved owner. A relative $ORIGIN is appended to the current origin; an initial origin field is resolved relative to the DNS root.
How are TTLs and classes exported?
TTL values and w/d/h/m/s units become seconds. The default from $TTL takes precedence over inherited previous explicit TTLs. Class is preserved, including CH/HS TXT; unsupported class/type combinations fail.
Are TXT quotes and parentheses preserved?
Yes. Escapes, semicolons and parentheses inside quoted strings stay in RDATA. Comments and grouping parentheses outside quotes are syntax, and field whitespace is normalized.
Can I use the CSV as a provider import file?
The CSV is a review table with source lines, not a provider-specific import format. Relative names in RDATA remain as entered; verify the target provider’s required columns and normalization.
Is the input stored or sent to DNS servers?
This parser does not save input drafts or query DNS servers. Site analytics records actions and counts, without the zone text or origin.
Keep browsing