module documentation
(source)

DNS protocol implementation.

Future Plans:

  • Get rid of some toplevels, maybe.
Interface ​IEncodable Interface for something which can be encoded to and decoded to the DNS wire format.
Interface ​IEncodable​Record Interface for DNS records that can be encoded and decoded.
Interface ​IRecord A single entry in a zone of authority.
Class ​Charstr No class docstring; 0/1 instance variable, 3/6 methods documented
Class ​DNSDatagram​Protocol DNS protocol over UDP.
Class ​DNSMixin DNS protocol mixin shared by UDP and TCP implementations.
Class ​DNSProtocol DNS protocol over TCP.
Class ​Message Message contains all the information represented by a single DNS request or response.
Class ​Name A name in the domain name system, made up of multiple labels. For example, twistedmatrix.com.
Class ​Query Represent a single DNS query.
Class ​Record_​A An IPv4 host address.
Class ​Record_​A6 An IPv6 address.
Class ​Record_​AAAA An IPv6 host address.
Class ​Record_​AFSDB Map from a domain name to the name of an AFS cell database server.
Class ​Record_​CNAME The canonical name for an alias.
Class ​Record_​DNAME A non-terminal DNS name redirection.
Class ​Record_​HINFO Host information.
Class ​Record_​MB A mailbox domain name.
Class ​Record_​MD A mail destination.
Class ​Record_​MF A mail forwarder.
Class ​Record_​MG A mail group member.
Class ​Record_​MINFO Mailbox or mail list information.
Class ​Record_​MR A mail rename domain name.
Class ​Record_​MX Mail exchange.
Class ​Record_​NAPTR The location of the server(s) for a specific protocol and domain.
Class ​Record_​NS An authoritative nameserver.
Class ​Record_​NULL A null record.
Class ​Record_​PTR A domain name pointer.
Class ​Record_​RP The responsible person for a domain.
Class ​Record_​SOA Marks the start of a zone of authority.
Class ​Record_​SPF Structurally, freeform text. Semantically, a policy definition, formatted as defined in rfc 4408.
Class ​Record_​SRV The location of the server(s) for a specific protocol and domain.
Class ​Record_​SSHFP A record containing the fingerprint of an SSH key.
Class ​Record_​TSIG A transaction signature, encapsulated in a RR, as described in RFC 2845.
Class ​Record_​TXT Freeform text.
Class ​Record_​WKS A well known service description.
Class ​RRHeader A resource record header.
Class ​Simple​Record A Resource Record which consists of a single RFC 1035 domain-name.
Class ​Unknown​Record Encapsulate the wire data for unknown record types so that they can pass through the system unchanged.
Function domain​String Coerce a domain name string to bytes.
Function random​Source Wrapper around twisted.python.randbytes.RandomFactory.secureRandom to return 2 random bytes.
Function read​Precisely Undocumented
Function str2time Parse a string description of an interval into an integer number of seconds.
Constant A Undocumented
Constant A6 Undocumented
Constant AAAA Undocumented
Constant AFSDB Undocumented
Constant ALL​_RECORDS Undocumented
Constant ANY Undocumented
Constant AXFR Undocumented
Constant CH Undocumented
Constant CNAME Undocumented
Constant CS Undocumented
Constant DNAME Undocumented
Constant EBADKEY Undocumented
Constant EBADSIG Undocumented
Constant EBADTIME Undocumented
Constant EBADVERSION Undocumented
Constant EFORMAT Undocumented
Constant ENAME Undocumented
Constant ENOTIMP Undocumented
Constant EREFUSED Undocumented
Constant ESERVER Undocumented
Constant EXT​_QUERIES Undocumented
Constant HINFO Undocumented
Constant HS Undocumented
Constant IN Undocumented
Constant IXFR Undocumented
Constant MAILA Undocumented
Constant MAILB Undocumented
Constant MB Undocumented
Constant MD Undocumented
Constant MF Undocumented
Constant MG Undocumented
Constant MINFO Undocumented
Constant MR Undocumented
Constant MX Undocumented
Constant NAPTR Undocumented
Constant NS Undocumented
Constant NULL Undocumented
Constant OK Undocumented
Constant OP​_INVERSE Undocumented
Constant OP​_NOTIFY Undocumented
Constant OP​_QUERY Undocumented
Constant OP​_STATUS Undocumented
Constant OP​_UPDATE Undocumented
Constant OPT Undocumented
Constant PORT Undocumented
Constant PTR Undocumented
Constant QUERY​_CLASSES Undocumented
Constant QUERY​_TYPES Undocumented
Constant REV​_CLASSES Undocumented
Constant REV​_TYPES Undocumented
Constant RP Undocumented
Constant SOA Undocumented
Constant SPF Undocumented
Constant SRV Undocumented
Constant SSHFP Undocumented
Constant TKEY Undocumented
Constant TSIG Undocumented
Constant TXT Undocumented
Constant WKS Undocumented
Class _​EDNSMessage An EDNS message.
Class _​OPTHeader An OPT record header.
Class _​OPTVariable​Option A class to represent OPT record variable options.
Function _compact​Repr Return a str representation of obj which only shows fields with non-default values, flags which are True and sections which have been explicitly set.
Function _get​Displayable​Arguments Inspect the function signature of obj's constructor, and get a list of which arguments should be displayed. This is a helper function for _compactRepr.
Function _is​Subdomain​Of Test whether descendantName is equal to or is a subdomain of ancestorName.
Function _name​To​Labels Split a domain name into its constituent labels.
Function _nicebytes Represent a mostly textful bytes object in a way suitable for presentation to an end user.
Function _nicebyteslist Represent a list of mostly textful bytes objects in a way suitable for presentation to an end user.
Function _ord2bytes Construct a bytes object representing a single byte with the given ordinal value.
Function _response​From​Message Generate a Message like instance suitable for use as the response to message.
def domainString(domain): (source)

Coerce a domain name string to bytes.

twisted.names represents domain names as bytes, but many interfaces accept bytes or a text string (unicode on Python 2, str on Python 3). This function coerces text strings using IDNA encoding --- see encodings.idna.

Note that DNS is case insensitive but case preserving. This function doesn't normalize case, so you'll still need to do that whenever comparing the strings it returns.

Parameters
domain:bytes or strA domain name. If passed as a text string it will be idna encoded.
Returns
bytesbytes suitable for network transmission.
Present Since
Twisted 20.3.0
def randomSource(): (source)
Wrapper around twisted.python.randbytes.RandomFactory.secureRandom to return 2 random bytes.
Returns
bytesUndocumented
def readPrecisely(file, l): (source)

Undocumented

def str2time(s): (source)
Parse a string description of an interval into an integer number of seconds.
Parameters
s:text string (bytes or str) for parsing; anything else for passthrough.An interval definition constructed as an interval duration followed by an interval unit. An interval duration is a base ten representation of an integer. An interval unit is one of the following letters: S (seconds), M (minutes), H (hours), D (days), W (weeks), or Y (years). For example: "3S" indicates an interval of three seconds; "5D" indicates an interval of five days. Alternatively, s may be any non-string and it will be returned unmodified.
Returns
an int giving the interval represented by the string s, or whatever s is if it is not a string.

Undocumented

Undocumented

Value
38
AAAA: int = (source)

Undocumented

Value
28
AFSDB = (source)

Undocumented

ALL_RECORDS = (source)

Undocumented

Undocumented

Value
255
AXFR = (source)

Undocumented

Undocumented

CNAME = (source)

Undocumented

Undocumented

DNAME: int = (source)

Undocumented

Value
39
EBADKEY = (source)

Undocumented

EBADSIG = (source)

Undocumented

EBADTIME = (source)

Undocumented

EBADVERSION: int = (source)

Undocumented

Value
16
EFORMAT = (source)

Undocumented

ENAME = (source)

Undocumented

ENOTIMP = (source)

Undocumented

EREFUSED = (source)

Undocumented

ESERVER = (source)

Undocumented

EXT_QUERIES = (source)

Undocumented

Value
{IXFR: 'IXFR',
 AXFR: 'AXFR',
 MAILB: 'MAILB',
 MAILA: 'MAILA',
 ALL_RECORDS: 'ALL_RECORDS'}
HINFO = (source)

Undocumented

Undocumented

Undocumented

IXFR = (source)

Undocumented

MAILA = (source)

Undocumented

MAILB = (source)

Undocumented

Undocumented

Undocumented

Undocumented

Undocumented

MINFO = (source)

Undocumented

Undocumented

Undocumented

NAPTR: int = (source)

Undocumented

Value
35

Undocumented

NULL = (source)

Undocumented

Undocumented

OP_INVERSE = (source)

Undocumented

OP_NOTIFY: int = (source)

Undocumented

Value
4
OP_QUERY = (source)

Undocumented

OP_STATUS = (source)

Undocumented

OP_UPDATE: int = (source)

Undocumented

Value
5

Undocumented

Value
41
PORT: int = (source)

Undocumented

Value
53

Undocumented

QUERY_CLASSES = (source)

Undocumented

Value
{IN: 'IN', CS: 'CS', CH: 'CH', HS: 'HS', ANY: 'ANY'}
QUERY_TYPES = (source)

Undocumented

Value
{A: 'A',
 NS: 'NS',
 MD: 'MD',
 MF: 'MF',
 CNAME: 'CNAME',
 SOA: 'SOA',
 MB: 'MB',
...
REV_CLASSES = (source)

Undocumented

Value
{v: k for k, v in QUERY_CLASSES.items()}
REV_TYPES = (source)

Undocumented

Value
{v: k for k, v in chain(QUERY_TYPES.items(), EXT_QUERIES.items())}

Undocumented

Undocumented

Undocumented

Value
99

Undocumented

Value
33
SSHFP: int = (source)

Undocumented

Value
44
TKEY: int = (source)

Undocumented

Value
249
TSIG: int = (source)

Undocumented

Value
250

Undocumented

Undocumented

def _compactRepr(obj, alwaysShow=None, flagNames=None, fieldNames=None, sectionNames=None): (source)
Return a str representation of obj which only shows fields with non-default values, flags which are True and sections which have been explicitly set.
Parameters
objThe instance whose repr is being generated.
always​ShowA list of field names which should always be shown.
flag​NamesA list of flag attribute names which should be shown if they are True.
field​NamesA list of field attribute names which should be shown if they have non-default values.
section​NamesA list of section attribute names which should be shown if they have been assigned a value.
Returns
A str representation of obj.
def _getDisplayableArguments(obj, alwaysShow, fieldNames): (source)
Inspect the function signature of obj's constructor, and get a list of which arguments should be displayed. This is a helper function for _compactRepr.
Parameters
objThe instance whose repr is being generated.
always​ShowA list of field names which should always be shown.
field​NamesA list of field attribute names which should be shown if they have non-default values.
Returns
A list of displayable arguments.
def _isSubdomainOf(descendantName, ancestorName): (source)

Test whether descendantName is equal to or is a subdomain of ancestorName.

The names are compared case-insensitively.

The names are treated as byte strings containing one or more DNS labels separated by ..

descendantName is considered equal if its sequence of labels exactly matches the labels of ancestorName.

descendantName is considered a subdomain if its sequence of labels ends with the labels of ancestorName.

Parameters
descendant​Name:bytesThe DNS subdomain name.
ancestor​Name:bytesThe DNS parent or ancestor domain name.
Returns
True if descendantName is equal to or if it is a subdomain of ancestorName. Otherwise returns False.
def _nameToLabels(name): (source)
Split a domain name into its constituent labels.
Parameters
name:bytesA fully qualified domain name (with or without a trailing dot).
Returns
list of bytesA list of labels ending with an empty label representing the DNS root zone.
def _nicebytes(bytes): (source)
Represent a mostly textful bytes object in a way suitable for presentation to an end user.
Parameters
bytesThe bytes to represent.
Returns
strUndocumented
def _nicebyteslist(list): (source)
Represent a list of mostly textful bytes objects in a way suitable for presentation to an end user.
Parameters
listThe list of bytes to represent.
Returns
strUndocumented
def _ord2bytes(ordinal): (source)
Construct a bytes object representing a single byte with the given ordinal value.
Parameters
ordinal:intUndocumented
Returns
bytesUndocumented
def _responseFromMessage(responseConstructor, message, **kwargs): (source)

Generate a Message like instance suitable for use as the response to message.

The queries, id attributes will be copied from message and the answer flag will be set to True.

Parameters
response​Constructor:callableA response message constructor with an initializer signature matching dns.Message.__init__.
message:MessageA request message.
**kwargs:dictKeyword arguments which will be passed to the initialiser of the response message.
Returns
responseConstructorA Message like response instance.