Channel
- Ares Channel
- class pycares.Channel([flags, timeout, tries, ndots, tcp_port, udp_port, servers, domains, lookups, sock_state_cb, socket_send_buffer_size, socket_receive_buffer_size, rotate, local_ip, local_dev, resolvconf_path])
- Parameters:
flags (int) – Flags controlling the behavior of the resolver. See
constants
for available values.timeout (float) – The number of seconds each name server is given to respond to a query on the first try. The default is five seconds.
tries (int) – The number of tries the resolver will try contacting each name server before giving up. The default is four tries.
ndots (int) – The number of dots which must be present in a domain name for it to be queried for “as is” prior to querying for it with the default domain extensions appended. The default value is 1 unless set otherwise by resolv.conf or the RES_OPTIONS environment variable.
tcp_port (int) – The (TCP) port to use for queries. The default is 53.
udp_port (int) – The (UDP) port to use for queries. The default is 53.
servers (list) – List of nameservers to be used to do the lookups.
domains (list) – The domains to search, instead of the domains specified in resolv.conf or the domain derived from the kernel hostname variable.
lookup (str) – The lookups to perform for host queries. lookups should be set to a string of the characters “b” or “f”, where “b” indicates a DNS lookup and “f” indicates a lookup in the hosts file.
sock_state_cb (callable) – A callback function to be invoked when a socket changes state. Callback signature:
sock_state_cb(self, fd, readable, writable)
socket_send_buffer_size (int) – Size for the created socket’s send buffer.
socket_receive_buffer_size (int) – Size for the created socket’s receive buffer.
rotate (bool) – If set to True, the nameservers are rotated when doing queries.
local_ip (str) – Sets the local IP address for DNS operations.
local_dev (str) – Sets the local network adapter to use for DNS operations. Linux only.
resolvconf_path (str) – Path to resolv.conf, defaults to /etc/resolv.conf. Unix only.
The c-ares
Channel
provides asynchronous DNS operations.- getaddrinfo(host, port, callback, family=0, type=0, proto=0, flags=0)
- Parameters:
host (string) – Hostname to resolve.
port (string) – Service to resolve. Can be a string, int or None.
callback (callable) – Callback to be called with the result of the query.
The
family
,type
andproto
arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. Theflags
argument can be one or several of theAI_*
constants, and will influence how results are computed and returned. For example,AI_NUMERICHOST
will disable domain name resolution.Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service.
Callback signature:
callback(result, errorno)
- gethostbyname(name, family, callback)
- Parameters:
name (string) – Name to query.
family (int) – Socket family.
callback (callable) – Callback to be called with the result of the query.
Retrieves host information corresponding to a host name from a host database.
Callback signature:
callback(result, errorno)
- gethostbyaddr(name, callback)
- Parameters:
name (string) – Name to query.
callback (callable) – Callback to be called with the result of the query.
Retrieves the host information corresponding to a network address.
Callback signature:
callback(result, errorno)
- getnameinfo(address, flags, callback)
- Parameters:
address (tuple) – address tuple to get info about.
flags (int) – Query flags, see the NI flags section.
callback (callable) – Callback to be called with the result of the query.
Provides protocol-independent name resolution from an address to a host name and from a port number to the service name.
address
must be a 2-item tuple for IPv4 or a 4-item tuple for IPv6. Format of fields is the same as one returned by getaddrinfo().Callback signature:
callback(result, errorno)
- query(name, query_type, callback)
- Parameters:
name (string) – Name to query.
query_type (int) – Type of query to perform.
callback (callable) – Callback to be called with the result of the query.
- Do a DNS query of the specified type. Available types:
QUERY_TYPE_A
QUERY_TYPE_AAAA
QUERY_TYPE_ANY
QUERY_TYPE_CAA
QUERY_TYPE_CNAME
QUERY_TYPE_MX
QUERY_TYPE_NAPTR
QUERY_TYPE_NS
QUERY_TYPE_PTR
QUERY_TYPE_SOA
QUERY_TYPE_SRV
QUERY_TYPE_TXT
Callback signature:
callback(result, errorno)
. The result type varies depending on the query type:A: (list of)
ares_query_a_result
, fields:host
ttl
AAAA: (list of)
ares_query_aaaa_result
, fields:host
ttl
CAA: (list of)
ares_query_caa_result
, fields:critical
property
value
ttl
CNAME:
ares_query_cname_result
, fields:cname
ttl
MX: (list of)
ares_query_mx_result
, fields:host
priority
ttl
NAPTR: (list of)
ares_query_naptr_result
, fields:order
preference
flags
service
regex
replacement
ttl
NS: (list of)
ares_query_ns_result
, fields:host
ttl
PTR: (list of)
ares_query_ptr_result
, fields:name
ttl
SOA:
ares_query_soa_result
, fields:nsname
hostmaster
serial
refresh
retry
expires
minttl
ttl
SRV: (list of)
ares_query_srv_result
, fields:host
port
priority
weight
ttl
TXT: (list of)
ares_query_txt_result
, fields:text
ttl
ANY: a list of any of the above.
Note
TTL is not implemented for CNAME and NS), so it’s set to -1.
- search(name, query_type, callback)
- Parameters:
name (string) – Name to query.
query_type (int) – Type of query to perform.
callback (callable) – Callback to be called with the result of the query.
Tis function does the same as
query()
but it will honor thedomain
andsearch
directives inresolv.conf
.
- cancel()
Cancel any pending query on this channel. All pending callbacks will be called with ARES_ECANCELLED errorno.
- process_fd(read_fd, write_fd)
- Parameters:
read_fd (int) – File descriptor ready to read from.
write_fd (int) – File descriptor ready to write to.
Process the given file descriptors for read and/or write events.
- getsock()
Return a tuple containing 2 lists with the file descriptors ready to read and write.
- timeout([max_timeout])
- Parameters:
max_timeout (float) – Maximum timeout.
Determines the maximum time for which the caller should wait before invoking
process_fd
to process timeouts. If themax_timeout
parameter is specified, it is stored on the channel and the appropriate value is then returned.
- set_local_ip(local_ip)
- Parameters:
local_ip (str) – IP address.
Set the local IPv4 or IPv6 address from which the queries will be sent.
- set_local_dev(local_dev)
- Parameters:
local_dev (str) – Network device name.
Set the local ethernet device from which the queries will be sent.
- servers
List of nameservers to use for DNS queries.