class documentation

Message contains all the information represented by a single DNS request or response.

Method __init__ No summary
Method __repr__ Generate a repr of this Message.
Method addQuery Add another query to this Message.
Method decode Undocumented
Method encode Undocumented
Method fromStr Decode a byte string in the format described by RFC 1035 into this Message.
Method lookupRecordType Retrieve the IRecord implementation for the given record type.
Method parseRecords Undocumented
Method toStr Encode this Message into a byte string in the format described by RFC
Class Variable compareAttributes Undocumented
Class Variable headerFmt Undocumented
Class Variable headerSize Undocumented
Class Variable timeReceived Undocumented
Instance Variable additional Records containing IP addresses of host names in answers and authority.
Instance Variable answer See __init__
Instance Variable answers Records containing the answers to queries if this is a response message.
Instance Variable auth See __init__
Instance Variable authenticData See __init__
Instance Variable authority Records containing information about the authoritative DNS servers for the names in queries.
Instance Variable checkingDisabled See __init__
Instance Variable id See __init__
Instance Variable maxCompressionPointers Per-message cap on the total number of compression-pointer dereferences decode will follow across every name in the message before raising DNSDecodeError. Defaults to 1000. Override it on a subclass or individual instance to tune the trade-off between tolerance for legitimately verbose messages and resistance to denial-of-service attacks.
Instance Variable maxSize See __init__
Instance Variable opCode See __init__
Instance Variable queries The queries which are being asked of or answered by DNS server.
Instance Variable rCode See __init__
Instance Variable recAv See __init__
Instance Variable recDes See __init__
Instance Variable trunc See __init__
Class Variable _recordTypes Undocumented

Inherited from FancyEqMixin:

Method __eq__ Undocumented
Method __ne__ Undocumented
def __init__(self, id: int = 0, answer: int = 0, opCode: int = 0, recDes: int = 0, recAv: int = 0, auth: bool = False, rCode: int = OK, trunc: int = 0, maxSize: int = 512, authenticData: int = 0, checkingDisabled: int = 0): (source)
Parameters
id:intA 16 bit identifier assigned by the program that generates any kind of query. This identifier is copied to the corresponding reply and can be used by the requester to match up replies to outstanding queries.
answer:intA one bit field that specifies whether this message is a query (0), or a response (1).
opCode:intA four bit field that specifies kind of query in this message. This value is set by the originator of a query and copied into the response.
recDes:intRecursion Desired - this bit may be set in a query and is copied into the response. If RD is set, it directs the name server to pursue the query recursively. Recursive query support is optional.
recAv:intRecursion Available - this bit is set or cleared in a response and denotes whether recursive query support is available in the name server.
auth:boolAuthoritative Answer - this bit is valid in responses and specifies that the responding name server is an authority for the domain name in question section.
rCode:intUndocumented
trunc:intA flag indicating that this message was truncated due to length greater than that permitted on the transmission channel.
maxSize:intThe requestor's UDP payload size is the number of octets of the largest UDP payload that can be reassembled and delivered in the requestor's network stack.
authenticData:intA flag indicating in a response that all the data included in the answer and authority portion of the response has been authenticated by the server according to the policies of that server. See RFC2535 section-6.1.
checkingDisabled:intA flag indicating in a query that pending (non-authenticated) data is acceptable to the resolver sending the query. See RFC2535 section-6.1.
def __repr__(self) -> str: (source)

Generate a repr of this Message.

Only includes the non-default fields and sections and only includes flags which are set. The id is always shown.

Returns
strThe native string repr.
def addQuery(self, name: str | bytes, type: int = ALL_RECORDS, cls: int = IN): (source)

Add another query to this Message.

Parameters
name:str | bytesThe name to query.
type:intQuery type
cls:intQuery class
def decode(self, strio: IO[bytes], length: int | None = None): (source)

Undocumented

def encode(self, strio: IO[bytes]): (source)

Undocumented

def fromStr(self, str: bytes): (source)

Decode a byte string in the format described by RFC 1035 into this Message.

Parameters
str:bytesbytes
def lookupRecordType(self, type: int) -> _RecordParser: (source)

Retrieve the IRecord implementation for the given record type.

Parameters
type:intA record type, such as A or NS.
Returns
_RecordParserAn object which implements IRecord or IEncodable. UnknownRecord is returned if no implementation can be found for the given type.
def parseRecords(self, list: list[RRHeader], num: int, strio: IO[bytes]): (source)

Undocumented

def toStr(self) -> bytes: (source)

Encode this Message into a byte string in the format described by RFC

headerFmt: str = (source)

Undocumented

headerSize: int = (source)

Undocumented

timeReceived: float | None = (source)

Undocumented

additional: list of RRHeader = (source)

Records containing IP addresses of host names in answers and authority.

Records containing the answers to queries if this is a response message.

authenticData: int = (source)

Records containing information about the authoritative DNS servers for the names in queries.

checkingDisabled: int = (source)
maxCompressionPointers: int = (source)

Per-message cap on the total number of compression-pointer dereferences decode will follow across every name in the message before raising DNSDecodeError. Defaults to 1000. Override it on a subclass or individual instance to tune the trade-off between tolerance for legitimately verbose messages and resistance to denial-of-service attacks.

The queries which are being asked of or answered by DNS server.

Undocumented