Skip to main content

dnspython

Build Status Documentation Status PyPI version License: ISC Code style: black

INTRODUCTION

dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG-authenticated messages and EDNS0.

dnspython provides both high- and low-level access to DNS. The high-level classes perform queries for data of a given name, type, and class, and return an answer set. The low-level classes allow direct manipulation of DNS zones, messages, names, and records.

The module name for dnspython is dns. To see a few of the ways dnspython can be used, look in the examples/ directory.

dnspython is a utility to work with DNS, /etc/hosts is thus not used. For simple forward DNS lookups, it's better to use socket.getaddrinfo() or socket.gethostbyname().

dnspython originated at Nominum where it was developed to facilitate the testing of DNS software.

ABOUT THIS RELEASE

This is dnspython 2.9.0. Please read What's New for information about the changes in this release.

INSTALLATION

  • Many distributions have dnspython packaged for you, so you should check there first.
  • To use a wheel downloaded from PyPi, run:
    pip install dnspython
  • To install from the source code, go into the top-level of the source code and run:
    pip install --upgrade pip build
    python -m build
    pip install dist/*.whl
  • To install the latest from the main branch, run pip install git+https://github.com/rthalley/dnspython.git

dnspython's default installation does not depend on any modules other than those in the Python standard library. To use some features, additional modules must be installed. For convenience, pip options are defined for the requirements.

If you want to use DNS-over-HTTPS, run pip install dnspython[doh].

If you want to use DNSSEC functionality, run pip install dnspython[dnssec].

If you want to use internationalized domain names (IDNA) functionality, you must run pip install dnspython[idna]

If you want to use the Trio asynchronous I/O package, run pip install dnspython[trio].

If you want to use WMI on Windows to determine the active DNS settings instead of the default registry scanning method, run pip install dnspython[wmi].

If you want to try the experimental DNS-over-QUIC code, run pip install dnspython[doq].

Note that you can install any combination of the above, e.g.: pip install dnspython[doh,dnssec,idna]

Notices

Python 2.x support ended with the release of 1.16.0. dnspython supports Python 3.11 and later. Future support is aligned with the lifetime of the Python 3 versions.

Documentation has moved to dnspython.readthedocs.io.

Metadata

Release files for dnspython 2.9.0

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

Source distribution (sdist)

Source distribution for dnspython 2.9.0
File Size Uploaded
dnspython-2.9.0.tar.gz 423.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dnspython 2.9.0
File Interpreter ABI Platform
dnspython-2.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 778.4 kB

Release files / dnspython-2.9.0.tar.gz

Download URL dnspython-2.9.0.tar.gz
Size 423.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b44dc6b18f07a8b1c56676a19fbfdb5209415b046a9cece286baafa87ff3f7f1
BLAKE2b-256 checksum
How to use checksums
ef4a50822184bd67cc6493f0fb6a880749158fcd31ab3fa07409acfd91f9fc85
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 Oct 9, 2026.

Transparency log

Release files / dnspython-2.9.0-py3-none-any.whl

Download URL dnspython-2.9.0-py3-none-any.whl
Size 354.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a4aedb833c3c1b49214d04d44d3032ab7a9135f7c1d29a549b4ff78fd82fda9
BLAKE2b-256 checksum
How to use checksums
1002cdcc9b7c051786a103c3b09e1003a82fa0c66bcb91ffbdabcfbf7b4163b9
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 Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.9.0 This release

2 release files

2.8.0

2 release files

2.7.0

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.15.0

2 release files

1.14.0

1 release file

1.13.0

1 release file

1.12.0

1 release file

1.11.1

1 release file

1.11.0

1 release file

1.10.0

1.9.4

1.9.3

1.9.2

1.9.1

1.9.0

1.8.0

1.7.1

1.6.0

1.5.0

1.4.0

1.3.5

1.3.4

1.3.3

1.3.2

1.3.1

1.3.0

1.2.0

1.1.0

1.0.0

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