class documentation

class ResolverBase: (source)

Known subclasses: twisted.names.authority.FileAuthority, twisted.names.cache.CacheResolver, twisted.names.client.Resolver, twisted.names.hosts.Resolver, twisted.names.resolve.ResolverChain, twisted.names.root.Resolver

Implements interfaces: twisted.internet.interfaces.IResolver

View In Hierarchy

ResolverBase is a base class for implementations of interfaces.IResolver which deals with a lot of the boilerplate of implementing all of the lookup methods.
Method __init__ Undocumented
Method exception​For​Code Convert a response code (one of the possible values of dns.Message.rCode to an exception instance representing it.
Method get​Host​By​Name Resolve the domain name name into an IP address.
Method lookup​Address Perform an A record lookup.
Method lookup​Address6 Perform an A6 record lookup.
Method lookup​AFSDatabase Perform an AFSDB record lookup.
Method lookup​All​Records Perform an ALL_RECORD lookup.
Method lookup​Authority Perform an SOA record lookup.
Method lookup​Canonical​Name Perform a CNAME record lookup.
Method lookup​Host​Info Perform a HINFO record lookup.
Method lookup​IPV6​Address Perform an AAAA record lookup.
Method lookup​Mail​Box Perform an MB record lookup.
Method lookup​Mailbox​Info Perform an MINFO record lookup.
Method lookup​Mail​Exchange Perform an MX record lookup.
Method lookup​Mail​Group Perform an MG record lookup.
Method lookup​Mail​Rename Perform an MR record lookup.
Method lookup​Nameservers Perform an NS record lookup.
Method lookup​Naming​Authority​Pointer Perform a NAPTR record lookup.
Method lookup​Null Perform a NULL record lookup.
Method lookup​Pointer Perform a PTR record lookup.
Method lookup​Responsibility Perform an RP record lookup.
Method lookup​Sender​Policy Perform a SPF record lookup.
Method lookup​Service Perform an SRV record lookup.
Method lookup​Text Perform a TXT record lookup.
Method lookup​Well​Known​Services Perform a WKS record lookup.
Method lookup​Zone Perform an AXFR record lookup.
Method query Dispatch query to the method which can handle its type.
Instance Variable type​To​Method Undocumented
Method _cb​Records Undocumented
Method _lookup Undocumented
Class Variable _errormap A dict mapping DNS protocol failure response codes to exception classes which will be used to represent those failures.
Class Variable _log Undocumented
def exceptionForCode(self, responseCode): (source)
Convert a response code (one of the possible values of dns.Message.rCode to an exception instance representing it.
Present Since
10.0
def getHostByName(self, name, timeout=None, effort=10): (source)
Resolve the domain name name into an IP address.
Parameters
nameDNS name to resolve.
timeoutNumber of seconds after which to reissue the query. When the last timeout expires, the query is considered failed.
effortUndocumented
Returns
The callback of the Deferred that is returned will be passed a string that represents the IP address of the specified name, or the errback will be called if the lookup times out. If multiple types of address records are associated with the name, A6 records will be returned in preference to AAAA records, which will be returned in preference to A records. If there are multiple records of the type to be returned, one will be selected at random.
Raises
twisted.internet.defer.TimeoutErrorRaised (asynchronously) if the name cannot be resolved within the specified timeout period.
def lookupAddress(self, name, timeout=None): (source)
Perform an A record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupAddress6(self, name, timeout=None): (source)
Perform an A6 record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupAFSDatabase(self, name, timeout=None): (source)
Perform an AFSDB record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupAllRecords(self, name, timeout=None): (source)
Perform an ALL_RECORD lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupAuthority(self, name, timeout=None): (source)
Perform an SOA record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupCanonicalName(self, name, timeout=None): (source)
Perform a CNAME record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupHostInfo(self, name, timeout=None): (source)
Perform a HINFO record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupIPV6Address(self, name, timeout=None): (source)
Perform an AAAA record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupMailBox(self, name, timeout=None): (source)
Perform an MB record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupMailboxInfo(self, name, timeout=None): (source)
Perform an MINFO record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupMailExchange(self, name, timeout=None): (source)
Perform an MX record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupMailGroup(self, name, timeout=None): (source)
Perform an MG record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupMailRename(self, name, timeout=None): (source)
Perform an MR record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupNameservers(self, name, timeout=None): (source)
Perform an NS record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupNamingAuthorityPointer(self, name, timeout=None): (source)
Perform a NAPTR record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupNull(self, name, timeout=None): (source)
Perform a NULL record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupPointer(self, name, timeout=None): (source)
Perform a PTR record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupResponsibility(self, name, timeout=None): (source)
Perform an RP record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupSenderPolicy(self, name, timeout=None): (source)
Perform a SPF record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupService(self, name, timeout=None): (source)
Perform an SRV record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupText(self, name, timeout=None): (source)
Perform a TXT record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupWellKnownServices(self, name, timeout=None): (source)
Perform a WKS record lookup.
Parameters
nameDNS name to resolve.
timeoutNumber 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.
def lookupZone(self, 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.

Parameters
nameDNS name to resolve.
timeoutWhen 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.
def query(self, query, timeout=None): (source)
Dispatch query to the method which can handle its type.
Parameters
queryThe DNS query being issued, to which a response is to be generated.
timeoutNumber 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.
typeToMethod: dict = (source)

Undocumented

def _cbRecords(self, records, name, effort): (source)

Undocumented

_errormap = (source)
A dict mapping DNS protocol failure response codes to exception classes which will be used to represent those failures.
_log = (source)

Undocumented