Asyncio Python DNS resolver
Project description
aiodnsresolver
Asyncio Python DNS resolver. Pure Python, with no dependencies other than the standard library, threads are not used, and all code is in a single module. The nameservers to query are taken from /etc/resolve.conf
.
Based on https://github.com/gera2ld/async_dns.
Installation
pip install aiodnsresolver
Usage
from aiodnsresolver import Resolver, TYPE_A
resolve = Resolver()
ip_addresses = await resolve('www.google.com', TYPE_A)
Scope
The scope of this project is deliberately restricted to operations that are used to resolve A or AAAA records: to resolve a domain name to one of its IP addresses, and have similar responsibilities to gethostbyname
. Some limited extra behaviour is present/may be added, but great care is taken to prevent scope creep, especially to not add complexity that isn't required to resolve A or AAAA records.
-
UDP queries are made, but not TCP. DNS servers must support UDP, and it's impossible for a single A and AAAA record to not fit into the maximum size of a UDP DNS response, 512 bytes. There may be other data that the DNS server would return in TCP connections, but this isn't required to resolve a domain name to a single IP address.
-
CNAME records are followed transparently.
-
Responses are cached, adhering to their TTL.
-
The resolver is a stub resolver: it delegates the responsibility of recursion to the nameserver(s) it queries. In the vast majority of envisioned use cases this is acceptable, since the nameservers in
/etc/resolve.conf
will be recursive.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aiodnsresolver-0.0.32-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c644dd93d2a3037c916cd152294645c900ebb95a6d9a4e599da7d353936561cf |
|
MD5 | 1222e797dd67d720319b062f919bcccf |
|
BLAKE2b-256 | 417012151ee2bcb54a5250175181236f7560b57ea1156dabcc410c753bead150 |