dns :: resolver :: Resolver :: Class Resolver |
[hide private]
[frames] | no frames]

# Class Resolver

source code

    object --+
             |
            Resolver

DNS stub resolver

Instance Methods | [hide private]
__init__(self, filename=`'``/etc/resolv.conf``'`, configure=True) Initialize a resolver instance. | source code
reset(self) Reset all resolver configuration to the defaults. | source code
read_resolv_conf(self, f) Process f as a file in the /etc/resolv.conf format. | source code
_determine_split_char(self, entry) | source code
_config_win32_nameservers(self, nameservers) Configure a NameServer registry entry. | source code
_config_win32_domain(self, domain) Configure a Domain registry entry. | source code
_config_win32_search(self, search) Configure a Search registry entry. | source code
_config_win32_fromkey(self, key) Extract DNS info from a registry key. | source code
read_registry(self) Extract resolver configuration from the Windows registry. | source code
_win32_is_nic_enabled(self, lm, guid, interface_key) | source code
_compute_timeout(self, start) | source code
dns.resolver.Answer instance |
query(self, qname, rdtype=1, rdclass=1, tcp=False, source=None, raise_on_no_answer=True, source_port=0) Query nameservers to find the answer to the question. | source code
use_tsig(self, keyring, keyname=None, algorithm=<DNS name HMAC-MD5.SIG-ALG.REG.INT.>) Add a TSIG signature to the query. | source code
use_edns(self, edns, ednsflags, payload) Configure Edns. | source code
set_flags(self, flags) Overrides the default flags with your own | source code
Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__str__`, `__subclasshook__`

Instance Variables | [hide private]
dns.resolver.Cache object | cache The cache to use.
dns.name.Name object | domain The domain of this host
int | edns The EDNS level to use.
int | ednsflags The EDNS flags
int | flags The message flags to use.
string | keyalgorithm The TSIG key algorithm to use.
dns.name.Name object | keyname The TSIG keyname to use.
dict | keyring The TSIG keyring to use.
float | lifetime The total number of seconds to spend trying to get an answer to the question.
list of strings | nameservers A list of nameservers to query.
int | payload The EDNS payload size.
int | port The port to which to send queries.
bool | retry_servfail should we retry a nameserver if it says SERVFAIL? The default is 'false'.
list of dns.name.Name objects | search The search list.
float | timeout The number of seconds to wait for a response from a server, before timing out.

Properties | [hide private]
Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, filename=`'``/etc/resolv.conf``'`, configure=True) (Constructor) | source code
Initialize a resolver instance. Parameters: `filename` (string or file object) - The filename of a configuration file in standard /etc/resolv.conf format. This parameter is meaningful only when configure is true and the platform is POSIX. `configure` (bool) - If True (the default), the resolver instance is configured in the normal fashion for the operating system the resolver is running on. (I.e. a /etc/resolv.conf file on POSIX systems and from the registry on Windows systems.) Overrides: object.__init__

### read_resolv_conf(self, f) | source code
Process f as a file in the /etc/resolv.conf format. If f is a string, it is used as the name of the file to open; otherwise it is treated as the file itself.

### query(self, qname, rdtype=1, rdclass=1, tcp=False, source=None, raise_on_no_answer=True, source_port=0) | source code
Query nameservers to find the answer to the question. The qname, rdtype, and rdclass parameters may be objects of the appropriate type, or strings that can be converted into objects of the appropriate type. E.g. For rdtype the integer 2 and the the string 'NS' both mean to query for records with DNS rdata type NS. Parameters: `qname` (dns.name.Name object or string) - the query name `rdtype` (int or string) - the query type `rdclass` (int or string) - the query class `tcp` (bool) - use TCP to make the query (default is False). `source` (IP address in dotted quad notation) - bind to this IP address (defaults to machine default IP). `raise_on_no_answer` (bool) - raise NoAnswer if there's no answer (defaults is True). `source_port` (int) - The port from which to send the message. The default is 0. Returns: dns.resolver.Answer instance Raises: `Timeout` - no answers could be found in the specified lifetime `NXDOMAIN` - the query name does not exist `YXDOMAIN` - the query name is too long after DNAME substitution `NoAnswer` - the response did not contain an answer and raise_on_no_answer is True. `NoNameservers` - no non-broken nameservers are available to answer the question.

### use_tsig(self, keyring, keyname=None, algorithm=<DNS name HMAC-MD5.SIG-ALG.REG.INT.>) | source code
Add a TSIG signature to the query. Parameters: `keyring` (dict) - The TSIG keyring to use; defaults to None. `keyname` - The name of the TSIG key to use; defaults to None. The key must be defined in the keyring. If a keyring is specified but a keyname is not, then the key used will be the first key in the keyring. Note that the order of keys in a dictionary is not defined, so applications should supply a keyname when a keyring is used, unless they know the keyring contains only one key. `algorithm` (string) - The TSIG key algorithm to use. The default is dns.tsig.default_algorithm.

### use_edns(self, edns, ednsflags, payload) | source code
Configure Edns. Parameters: `edns` (int) - The EDNS level to use. The default is -1, no Edns. `ednsflags` (int) - The EDNS flags `payload` (int) - The EDNS payload size. The default is 0.

### set_flags(self, flags) | source code
Overrides the default flags with your own Parameters: `flags` (int) - The flags to overwrite the default with

Instance Variable Details | [hide private]

### cache The cache to use. The default is None. Type: dns.resolver.Cache object

### edns The EDNS level to use. The default is -1, no Edns. Type: int

### flags The message flags to use. The default is None (i.e. not overwritten) Type: int

### keyalgorithm The TSIG key algorithm to use. The default is dns.tsig.default_algorithm. Type: string

### keyname The TSIG keyname to use. The default is None. Type: dns.name.Name object

### keyring The TSIG keyring to use. The default is None. Type: dict

### lifetime The total number of seconds to spend trying to get an answer to the question. If the lifetime expires, a Timeout exception will occur. Type: float

### nameservers A list of nameservers to query. Each nameserver is a string which contains the IP address of a nameserver. Type: list of strings

### payload The EDNS payload size. The default is 0. Type: int

### port The port to which to send queries. The default is 53. Type: int

### search The search list. If the query name is a relative name, the resolver will construct an absolute query name by appending the search names one by one to the query name. Type: list of dns.name.Name objects