Skip to content
100% local

DNS zone file generator

Turn a plain list of DNS records into a BIND-style zone file.

Input
Output

DNS zone file generator

Paste a list of DNS records, one per line, and this tool writes a complete BIND-style zone file around them — the $ORIGIN and $TTL directives, a filled-in SOA record, and every record you listed with its columns aligned the way a hand-written zone file looks. It suits anyone who manages authoritative DNS directly: standing up a new domain, migrating a zone between providers, or keeping a version-controlled copy of records a control panel normally hides.

Each line takes the form "name type value" — for example "www A 192.0.2.10" or "@ MX 10 mail.example.com". A, AAAA, CNAME, NS and PTR take a single value; MX takes a priority and a target; SRV takes priority, weight, port and target; CAA takes flags, a tag and a value. TXT is the one exception worth knowing: DNS limits a single character-string to 255 bytes, so a longer SPF or DKIM value is split automatically into multiple quoted strings instead of producing an invalid record.

The options bar sets the zone-wide values: origin domain, default TTL, and every SOA field — primary nameserver, responsible-party email (converted to the dotted rname DNS expects), serial, refresh, retry, expire and minimum. A blank serial is filled in with today's date as YYYYMMDDnn. Record names print relative to the origin or fully qualified with a trailing dot, your choice. If a name carries both a CNAME and another record — something DNS itself forbids — the file flags it with a warning comment instead of silently producing something a nameserver will reject.

Everything runs in your browser; the record list and every option stay on your device. Copy the result, download it as a .txt file ready to rename to your zone file, or send it to another tool's input to keep working on it.

FAQ

What format do I paste the records in?
One record per line as "name type value", e.g. "www A 192.0.2.10" or "mail MX 10 mail.example.com". MX needs a priority before the target, SRV needs priority, weight, port and target, and CAA needs flags, a tag and a value.
How does it handle long TXT records like SPF or DKIM?
DNS caps a single quoted string at 255 characters, so a longer TXT value is split into multiple adjacent quoted strings automatically — the record still resolves as one concatenated value.
What happens if I leave the serial blank?
It's filled in with today's date as YYYYMMDD01, the conventional format for a zone's first edit of the day. Set your own value if you need to match an existing zone's numbering.
Why does it warn me about some records?
DNS does not allow a name to carry a CNAME alongside any other record type. The generator still writes both records but adds a comment flagging the conflict so you catch it before deploying.
Is my zone data uploaded anywhere?
No. The zone file is generated entirely in your browser — your records and options never leave your device.