Asynchronous client DNS
The functions exposed in this module can be used for asynchronous name resolution and dns queries.
If you need to create a resolver with specific requirements, such as needing to do queries against a particular host, the createResolver
function will return an IResolver
.
Future plans: Proper nameserver acquisition on Windows/MacOS, better caching, respect timeouts
Class | Resolver | No summary |
Class | AXFRController | Undocumented |
Class | ThreadedResolver | Undocumented |
Class | DNSClientFactory | No class docstring; 0/2 instance variables, 1/4 methods documented |
Function | createResolver | Create and return a Resolver. |
Variable | theResolver | Undocumented |
Function | getResolver | Get a Resolver instance. |
Function | getHostByName | Resolve a name to a valid ipv4 or ipv6 address. |
Function | query | Dispatch query to the method which can handle its type. |
Function | lookupAddress | Perform an A record lookup. |
Function | lookupIPV6Address | Perform an AAAA record lookup. |
Function | lookupAddress6 | Perform an A6 record lookup. |
Function | lookupMailExchange | Perform an MX record lookup. |
Function | lookupNameservers | Perform an NS record lookup. |
Function | lookupCanonicalName | Perform a CNAME record lookup. |
Function | lookupMailBox | Perform an MB record lookup. |
Function | lookupMailGroup | Perform an MG record lookup. |
Function | lookupMailRename | Perform an MR record lookup. |
Function | lookupPointer | Perform a PTR record lookup. |
Function | lookupAuthority | Perform an SOA record lookup. |
Function | lookupNull | Perform a NULL record lookup. |
Function | lookupWellKnownServices | Perform a WKS record lookup. |
Function | lookupService | Perform an SRV record lookup. |
Function | lookupHostInfo | Perform a HINFO record lookup. |
Function | lookupMailboxInfo | Perform an MINFO record lookup. |
Function | lookupText | Perform a TXT record lookup. |
Function | lookupSenderPolicy | Perform a SPF record lookup. |
Function | lookupResponsibility | Perform an RP record lookup. |
Function | lookupAFSDatabase | Perform an AFSDB record lookup. |
Function | lookupZone | Perform an AXFR record lookup. |
Function | lookupAllRecords | Perform an ALL_RECORD lookup. |
Function | lookupNamingAuthorityPointer | Perform a NAPTR record lookup. |
Create and return a Resolver.
Parameters | servers | If not None , interpreted as a list of domain name servers to attempt to use. Each server is a tuple of address in str dotted-quad form and int port number. (type: list of (str, int) or None ) |
resolvconf | If not None , on posix systems will be interpreted as an alternate resolv.conf to use. Will do nothing on windows systems. If None , /etc/resolv.conf will be used. (type: str or None ) | |
hosts | If not None , an alternate hosts file to use. If None on posix systems, /etc/hosts will be used. On windows, C:\windows\hosts will be used. (type: str or None ) | |
Returns | Undocumented (type: IResolver ) |
Get a Resolver instance.
Create twisted.names.client.theResolver if it is None
, and then return that value.
Returns | Undocumented (type: IResolver ) |
Resolve a name to a valid ipv4 or ipv6 address.
Will errback with DNSQueryTimeoutError
on a timeout, DomainError
or AuthoritativeDomainError
(or subclasses) on other errors.
Parameters | name | DNS name to resolve. (type: str ) |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int ) | |
effort | How many times CNAME and NS records to follow while resolving this name. (type: int ) | |
Returns | Undocumented (type: Deferred ) |
Dispatch query
to the method which can handle its type.
Parameters | query | The DNS query being issued, to which a response is to be generated. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an A record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an AAAA record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an A6 record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an MX record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an NS record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform a CNAME record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an MB record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an MG record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an MR record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform a PTR record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an SOA record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform a NULL record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform a WKS record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an SRV record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform a HINFO record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an MINFO record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform a TXT record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform a SPF record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an RP record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an AFSDB record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an AXFR record lookup.
NB This is quite different from other DNS requests. See http://cr.yp.to/djbdns/axfr-notes.html for more information.
NB Unlike other lookup*
methods, the timeout here is not a list of ints, it is a single int.
Parameters | name | DNS name to resolve. |
timeout | When this timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second and third elements are always empty. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform an ALL_RECORD lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |
Perform a NAPTR record lookup.
Parameters | name | DNS name to resolve. |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. | |
Returns | A Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second element of the tuple gives authorities. The third element of the tuple gives additional information. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError . |