---
name: "axfr-get"
section: "8"
platform: "linux"
package: "axfrdns"
version: "1:1.05-22"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/axfr-get"
---

# axfr-get(8)

a DNS zone-transfer client. It sends a zone-transfer request in DNS-over-TCP format to descriptor 7, reads the results from descriptor 6, and saves the results in a file.

## NAME

axfr-get - a DNS zone-transfer client.

It sends a zone-transfer request in DNS-over-TCP format to descriptor 7, reads the results from descriptor 6, and saves the results in a file.

## SYNOPSIS

Normally  **axfr-get** is run under  [**tcpclient**(1)](/tcpclient/1.md), which sets up descriptors 6 and 7 as a TCP connection to a remote host.

**axfr-get** *z* *fn* *fn.tmp*

## DESCRIPTION

**axfr-get** performs a zone transfer for domain  *z*. It writes the results to  *fn.tmp* in a format that can be used as input to [**tinydns-data**(8)](/tinydns-data/8.md). If the zone transfer completes successfully, **axfr-get** atomically renames  *fn.tmp* as  *fn*.

*fn.tmp* and  *fn* must be on the same filesystem.

**axfr-get** writes the zone serial number as a comment at the top of *fn.tmp*. It skips the zone transfer, leaving  *fn* alone, if *fn* already exists,

*fn* has a serial number matching the zone serial number, and both serial numbers are nonzero.

Zone transfers often include duplicate records. You should feed the  **axfr-get** results through sort -u.

**axfr-get** discards all records outside the domain  *z*. It accepts records in child zones, but it marks all child zones as non-authoritative, so [**tinydns**(8)](/tinydns/8.md) will not report those records except as glue. If you plan to merge the  **axfr-get** results for a domain and a child of the same domain, creating a file authoritative for both zones, make sure to eliminate records in the first output that are within the child zone.

**axfr-get** will accept arbitrarily large zone transfers. To limit the maximum file size to 1 megabyte, run  **axfr-get** under  **softlimit** -f 1048576.

## Compatibility notes

**axfr-get** handles BIND's RFC-1034-violating multiple-answers zone-transfer format.

**axfr-get** does not precisely simulate BIND's handling of  *\*.dom*. Under BIND, records for *\*.dom* do not apply to *y.dom* or *anything.y.dom* if there is a normal record for *x.y.dom*. With  **axfr-get** and  [**tinydns**(8)](/tinydns/8.md), the records apply to  *y.dom* and *anything.y.dom* except  *x.y.dom*.

**axfr-get** does not precisely simulate BIND's handling of multiple IP addresses for a single name. When there are more than 8 addresses, [**tinydns**(8)](/tinydns/8.md) selects a random set of 8 for each query.

## SEE ALSO

[axfrdns(8)](/axfrdns/8.md), [tinydns(8)](/tinydns/8.md), [tinydns-data(8)](/tinydns-data/8.md), [tcpclient(1)](/tcpclient/1.md), [softlimit(8)](/softlimit/8.md) http://cr.yp.to/djbdns.html
