Skip to main content

Project Logo

The Lupaxa Security Toolbox
Part of The Lupaxa Project


lupaxa-zone-transfer

Test whether a domain's nameservers allow DNS zone transfer (AXFR), and show the zone contents when they do.

Warning — authorised use only. This tool contacts nameservers and can expose a full zone. Use it only on systems you are allowed to test.

Features

  • Discover authoritative NS records or use repeatable --nameserver values
  • Sort nameservers by name; for each host, try IPv4 before IPv6
  • Resolve every IPv4 and IPv6 address for nameserver hostnames
  • Try AXFR against every discovered endpoint
  • Report allowed, refused, and error outcomes
  • Print transferred records with name, type, TTL, and rdata
  • Human-readable table (colour on a TTY; --no-color or NO_COLOR to disable), or JSON
  • Spinner on stderr while nameserver lookup and AXFR run (TTY only)
  • Optional --fail-open exit status for CI-style security findings
  • Library API (inspect_domain / inspect_many) and CLI (zone-transfer)
  • Fully typed, linted, formatted, and tested

Installation

From PyPI

pip install lupaxa-zone-transfer

From source (development mode)

pip install -e ".[dev]"

Requires Python 3.10+. Runtime dependencies: dnspython, prettytable, and colored.

Library quick start

from lupaxa.zone_transfer import inspect_domain

report = inspect_domain("example.com")
print(report.attempts[0].status)

CLI quick start

zone-transfer --help
zone-transfer example.com
zone-transfer example.com example.org
zone-transfer example.com --nameserver ns1.example.net --nameserver 203.0.113.10
zone-transfer example.com --format json
zone-transfer example.com --fail-open
zone-transfer example.com --timeout 10 --no-color

You can also run the CLI as a module:

python -m lupaxa.zone_transfer --help
python -m lupaxa.zone_transfer --version

Documentation

Online documentation:

Documentation

Source repository:

GitHub

Serve docs locally

From a clone of the repository:

make mkdocs-serve

Then open the local URL printed by MkDocs in your browser.

Development

Clone the repository and install with Make:

make init                # first-time makefile-skills checkout
make python-install-dev  # editable install with [dev]
make python-check        # lint, type-check, and test
The Lupaxa Project Footer

Release files for lupaxa-zone-transfer 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lupaxa-zone-transfer 0.1.1
File Size Uploaded
lupaxa_zone_transfer-0.1.1.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lupaxa-zone-transfer 0.1.1
File Interpreter ABI Platform
lupaxa_zone_transfer-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 26.2 kB

Release files / lupaxa_zone_transfer-0.1.1.tar.gz

Download URL lupaxa_zone_transfer-0.1.1.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
387f3a99c423cc82f169c502d2b8ec4848b6cd0cc57708cd8f34b876112e152c
BLAKE2b-256 checksum
How to use checksums
78699ac993f28cd149fcc982e3d1112159eb743f03b767044521bb11c3089795
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / lupaxa_zone_transfer-0.1.1-py3-none-any.whl

Download URL lupaxa_zone_transfer-0.1.1-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bae8ebcb90ca1f76d6d442ee3e1a52d193819ce681b27f0d021044ddcae1785a
BLAKE2b-256 checksum
How to use checksums
d79a40b3b6135fbb01a17bebd59a47dc28f49b89bfc947c2ca776f286b8189b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page