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; 1/4 methods documented
Function createResolver Create and return a Resolver.
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.
def createResolver(servers=None, resolvconf=None, hosts=None): (source)

Create and return a Resolver.

ParametersserversIf 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)
resolvconfIf 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)
hostsIf 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 (type: IResolver)
def getResolver(): (source)

Get a Resolver instance.

Create twisted.names.client.theResolver if it is None, and then return that value.

Returns (type: IResolver)
def getHostByName(name, timeout=None, effort=10): (source)

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.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
effortHow many times CNAME and NS records to follow while resolving this name. (type: int)
Returns (type: Deferred)
def query(query, timeout=None): (source)

Dispatch query to the method which can handle its type.

ParametersqueryThe DNS query being issued, to which a response is to be generated. (type: twisted.names.dns.Query)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupAddress(name, timeout=None): (source)

Perform an A record lookup.

ParametersnameDNS name to resolve. (type: bytes)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupIPV6Address(name, timeout=None): (source)

Perform an AAAA record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupAddress6(name, timeout=None): (source)

Perform an A6 record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupMailExchange(name, timeout=None): (source)

Perform an MX record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupNameservers(name, timeout=None): (source)

Perform an NS record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupCanonicalName(name, timeout=None): (source)

Perform a CNAME record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupMailBox(name, timeout=None): (source)

Perform an MB record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupMailGroup(name, timeout=None): (source)

Perform an MG record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupMailRename(name, timeout=None): (source)

Perform an MR record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupPointer(name, timeout=None): (source)

Perform a PTR record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupAuthority(name, timeout=None): (source)

Perform an SOA record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupNull(name, timeout=None): (source)

Perform a NULL record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupWellKnownServices(name, timeout=None): (source)

Perform a WKS record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupService(name, timeout=None): (source)

Perform an SRV record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupHostInfo(name, timeout=None): (source)

Perform a HINFO record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupMailboxInfo(name, timeout=None): (source)

Perform an MINFO record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupText(name, timeout=None): (source)

Perform a TXT record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupSenderPolicy(name, timeout=None): (source)

Perform a SPF record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupResponsibility(name, timeout=None): (source)

Perform an RP record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupAFSDatabase(name, timeout=None): (source)

Perform an AFSDB record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupZone(name, timeout=None): (source)

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.

ParametersnameDNS name to resolve. (type: str)
timeoutWhen this timeout expires, the query is considered failed. (type: int)
ReturnsA 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. (type: Deferred)
def lookupAllRecords(name, timeout=None): (source)

Perform an ALL_RECORD lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
def lookupNamingAuthorityPointer(name, timeout=None): (source)

Perform a NAPTR record lookup.

ParametersnameDNS name to resolve. (type: str)
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int)
ReturnsA 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. (type: Deferred)
API Documentation for Twisted, generated by pydoctor at 2017-09-23 19:45:03.