Rdata classes and types
Sets of typed data can be associated with a given name. A single typed datum is called an rdata. The type of an rdata is specified by its rdataclass and rdatatype. The class is almost always IN, the Internet class, and may often be omitted in the dnspython APIs.
The dns.rdataclass
module provides constants for each defined
rdata class, as well as some helpful functions. The dns.rdatatype
module does the same for rdata types. Examples of the constants are:
dns.rdataclass.IN
dns.rdatatype.AAAA
DNS Rdata Classes.
- class dns.rdataclass.RdataClass(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]
DNS Rdata Class
- dns.rdataclass.from_text(text: str) RdataClass [source]
Convert text into a DNS rdata class value.
The input text can be a defined DNS RR class mnemonic or instance of the DNS generic class syntax.
For example, “IN” and “CLASS1” will both result in a value of 1.
Raises
dns.rdatatype.UnknownRdataclass
if the class is unknown.Raises
ValueError
if the rdata class value is not >= 0 and <= 65535.Returns a
dns.rdataclass.RdataClass
.
- dns.rdataclass.is_metaclass(rdclass: RdataClass) bool [source]
True if the specified class is a metaclass.
The currently defined metaclasses are ANY and NONE.
rdclass is a
dns.rdataclass.RdataClass
.
- dns.rdataclass.to_text(value: RdataClass) str [source]
Convert a DNS rdata class value to text.
If the value has a known mnemonic, it will be used, otherwise the DNS generic class syntax will be used.
Raises
ValueError
if the rdata class value is not >= 0 and <= 65535.Returns a
str
.
DNS Rdata Types.
- class dns.rdatatype.RdataType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]
DNS Rdata Type
- exception dns.rdatatype.UnknownRdatatype(*args, **kwargs)[source]
DNS resource record type is unknown.
- dns.rdatatype.from_text(text: str) RdataType [source]
Convert text into a DNS rdata type value.
The input text can be a defined DNS RR type mnemonic or instance of the DNS generic type syntax.
For example, “NS” and “TYPE2” will both result in a value of 2.
Raises
dns.rdatatype.UnknownRdatatype
if the type is unknown.Raises
ValueError
if the rdata type value is not >= 0 and <= 65535.Returns a
dns.rdatatype.RdataType
.
- dns.rdatatype.is_metatype(rdtype: RdataType) bool [source]
True if the specified type is a metatype.
rdtype is a
dns.rdatatype.RdataType
.The currently defined metatypes are TKEY, TSIG, IXFR, AXFR, MAILA, MAILB, ANY, and OPT.
Returns a
bool
.
- dns.rdatatype.is_singleton(rdtype: RdataType) bool [source]
Is the specified type a singleton type?
Singleton types can only have a single rdata in an rdataset, or a single RR in an RRset.
The currently defined singleton types are CNAME, DNAME, NSEC, NXT, and SOA.
rdtype is an
int
.Returns a
bool
.
- dns.rdatatype.register_type(rdtype: RdataType, rdtype_text: str, is_singleton: bool = False) None [source]
Dynamically register an rdatatype.
rdtype, a
dns.rdatatype.RdataType
, the rdatatype to register.rdtype_text, a
str
, the textual form of the rdatatype.is_singleton, a
bool
, indicating if the type is a singleton (i.e. RRsets of the type can have only one member.)
- dns.rdatatype.to_text(value: RdataType) str [source]
Convert a DNS rdata type value to text.
If the value has a known mnemonic, it will be used, otherwise the DNS generic type syntax will be used.
Raises
ValueError
if the rdata type value is not >= 0 and <= 65535.Returns a
str
.
- Rdataclasses
- Rdatatypes
dns.rdatatype.A
dns.rdatatype.A6
dns.rdatatype.AAAA
dns.rdatatype.AFSDB
dns.rdatatype.AMTRELAY
dns.rdatatype.ANY
dns.rdatatype.APL
dns.rdatatype.AVC
dns.rdatatype.AXFR
dns.rdatatype.CAA
dns.rdatatype.CDNSKEY
dns.rdatatype.CDS
dns.rdatatype.CERT
dns.rdatatype.CNAME
dns.rdatatype.CSYNC
dns.rdatatype.DHCID
dns.rdatatype.DLV
dns.rdatatype.DNAME
dns.rdatatype.DNSKEY
dns.rdatatype.DS
dns.rdatatype.EUI48
dns.rdatatype.EUI64
dns.rdatatype.GPOS
dns.rdatatype.HINFO
dns.rdatatype.HIP
dns.rdatatype.HTTPS
dns.rdatatype.IPSECKEY
dns.rdatatype.ISDN
dns.rdatatype.IXFR
dns.rdatatype.KEY
dns.rdatatype.KX
dns.rdatatype.L32
dns.rdatatype.L64
dns.rdatatype.LOC
dns.rdatatype.LP
dns.rdatatype.MAILA
dns.rdatatype.MAILB
dns.rdatatype.MB
dns.rdatatype.MD
dns.rdatatype.MF
dns.rdatatype.MG
dns.rdatatype.MINFO
dns.rdatatype.MR
dns.rdatatype.MX
dns.rdatatype.NAPTR
dns.rdatatype.NID
dns.rdatatype.NINFO
dns.rdatatype.NS
dns.rdatatype.NSAP
dns.rdatatype.NSAP_PTR
dns.rdatatype.NSEC
dns.rdatatype.NSEC3
dns.rdatatype.NSEC3PARAM
dns.rdatatype.NULL
dns.rdatatype.NXT
dns.rdatatype.OPENPGPKEY
dns.rdatatype.OPT
dns.rdatatype.PTR
dns.rdatatype.PX
dns.rdatatype.RESINFO
dns.rdatatype.RP
dns.rdatatype.RRSIG
dns.rdatatype.RT
dns.rdatatype.SIG
dns.rdatatype.SMIMEA
dns.rdatatype.SOA
dns.rdatatype.SPF
dns.rdatatype.SRV
dns.rdatatype.SSHFP
dns.rdatatype.SVCB
dns.rdatatype.TA
dns.rdatatype.TKEY
dns.rdatatype.TLSA
dns.rdatatype.TSIG
dns.rdatatype.TXT
dns.rdatatype.TYPE0
dns.rdatatype.UNSPEC
dns.rdatatype.URI
dns.rdatatype.WALLET
dns.rdatatype.WKS
dns.rdatatype.X25
dns.rdatatype.ZONEMD