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
constantsfor 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
Channelprovides 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,typeandprotoarguments 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. Theflagsargument can be one or several of theAI_*constants, and will influence how results are computed and returned. For example,AI_NUMERICHOSTwill 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.
addressmust 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_AQUERY_TYPE_AAAAQUERY_TYPE_ANYQUERY_TYPE_CAAQUERY_TYPE_CNAMEQUERY_TYPE_MXQUERY_TYPE_NAPTRQUERY_TYPE_NSQUERY_TYPE_PTRQUERY_TYPE_SOAQUERY_TYPE_SRVQUERY_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 thedomainandsearchdirectives 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_fdto process timeouts. If themax_timeoutparameter 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.