Packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
dnspython is a DNS toolkit that handles queries, zone transfers, dynamic updates, TSIG authentication, and EDNS0, with support for nearly all DNS record types and both high-level and low-level API access.
Install it if you need DNS queries, zone operations, or DNSSEC validation in Python; avoid it only if you need simple hostname resolution.
Validates fully-qualified domain names (FQDNs) against RFC 1123 standards, checking whether a string would be acceptable as a public Internet hostname, with configurable relaxations for short names or underscores.
Represents and manipulates IPv4, IPv6, MAC addresses and related network objects; supports CIDR notation, subnetting, set operations, IANA lookups, and DNS reverse generation.
Extracts the public suffix and registrable domain from a domain name using the Public Suffix List, with support for IDNA encoding, wildcard handling, and strict validation.
However, do not use it if you require current public suffix data—the bundled list is from 2019-12-21 and the project is abandoned.
Parses the Public Suffix List to extract the public and private (registrable) portions of domain names, with support for internationalized domain names and Punycode.
Install it if you need reliable public suffix parsing; the daily-updated built-in list and pure-Python implementation make it a practical choice.
Encodes and decodes DNS wire-format packets, supporting creation of DNS requests and responses, and parsing of zone file and DiG formats.
However, be aware it is in maintenance mode—no new features or API modernization are planned.
Implements DKIM (DomainKeys Identified Mail) email signing and verification, along with ARC (Authenticated Receive Chain) and TLSRPT support for cryptographic email authentication.
However, high install friction (manual setup.py incantation for scripts) and 771-day release gap mean you should verify it works with your Python version and DNS…
Python client library and command-line tool for the OpenStack Designate DNS-as-a-Service API, enabling programmatic management of DNS zones and records.
dns-lexicon provides a unified Python interface to create, read, update, and delete DNS records across multiple DNS providers via their APIs, usable as both a CLI tool and a library.
Install it if you need to automate DNS operations or support multiple DNS backends.
octoDNS provides tools to manage DNS records across multiple providers using a code-based, version-controlled approach, similar to infrastructure-as-code practices.
Install it if you manage DNS at scale or across multiple providers and want version control and automation; skip it if you only use a single provider's console.
Provides synchronous DNS query functionality for Python 3, supporting common record types with configurable nameservers and result formatting.
Parses domain names into their constituent parts (subdomain, domain, top-level domain) by working backwards from the TLD, with support for multi-part suffixes like .co.uk.
However, do not use it if you require active bug fixes or expect frequent TLD updates—the repository shows minimal ongoing support.