Package dns :: Module name
[hide private]
[frames] | no frames]

Module name

source code

DNS Names.

Classes [hide private]
  EmptyLabel
A DNS label is empty.
  BadEscape
An escaped code in a text format of DNS name is invalid.
  BadPointer
A DNS compression pointer points forward instead of backward.
  BadLabelType
The label type in DNS name wire format is unknown.
  NeedAbsoluteNameOrOrigin
An attempt was made to convert a non-absolute name to wire when there was also a non-absolute (or missing) origin.
  NameTooLong
A DNS name is > 255 octets long.
  LabelTooLong
A DNS label is > 63 octets long.
  AbsoluteConcatenation
An attempt was made to append anything other than the empty name to an absolute DNS name.
  NoParent
An attempt was made to get the parent of the root name or the empty name.
  NoIDNA2008
IDNA 2008 processing was requested but the idna module is not available.
  IDNAException
IDNA processing raised an exception.
  IDNACodec
Abstract base class for IDNA encoder/decoders.
  IDNA2003Codec
IDNA 2003 encoder/decoder.
  IDNA2008Codec
IDNA 2008 encoder/decoder.
  Name
A DNS name.
Functions [hide private]
string
_escapify(label, unicode_mode=False)
Escape the characters in label which need it.
source code
 
_validate_labels(labels)
Check for empty labels in the middle of a label sequence, labels that are too long, and for too many labels.
source code
 
_maybe_convert_to_binary(label)
If label is ``text``, convert it to ``binary``.
source code
 
from_unicode(text, origin=<DNS name .>, idna_codec=None)
Convert unicode text into a Name object.
source code
 
from_text(text, origin=<DNS name .>, idna_codec=None)
Convert text into a Name object.
source code
 
from_wire(message, current)
Convert possibly compressed wire format into a Name.
source code
Variables [hide private]
  have_idna_2008 = False
  maxint = 9223372036854775807
  NAMERELN_NONE = 0
  NAMERELN_SUPERDOMAIN = 1
  NAMERELN_SUBDOMAIN = 2
  NAMERELN_EQUAL = 3
  NAMERELN_COMMONANCESTOR = 4
  _escaped = bytearray(b'"().;\\@$')
  IDNA_2003_Practical = IDNA2003Codec(False)
  IDNA_2003_Strict = IDNA2003Codec(True)
  IDNA_2003 = IDNA2003Codec(False)
  IDNA_2008_Practical = IDNA2008Codec(True, False, True, False)
  IDNA_2008_UTS_46 = IDNA2008Codec(True, False, False, False)
  IDNA_2008_Strict = IDNA2008Codec(False, False, False, True)
  IDNA_2008_Transitional = IDNA2008Codec(True, True, False, False)
  IDNA_2008 = IDNA2008Codec(True, False, True, False)
  root = <DNS name .>
  empty = <DNS name @>
  __package__ = 'dns'
Function Details [hide private]

_escapify(label, unicode_mode=False)

source code 

Escape the characters in label which need it.

Parameters:
  • unicode_mode - escapify only special and whitespace (<= 0x20) characters
Returns: string
the escaped string

_validate_labels(labels)

source code 

Check for empty labels in the middle of a label sequence, labels that are too long, and for too many labels.

Raises ``dns.name.NameTooLong`` if the name as a whole is too long.

Raises ``dns.name.EmptyLabel`` if a label is empty (i.e. the root label) and appears in a position other than the end of the label sequence

_maybe_convert_to_binary(label)

source code 

If label is ``text``, convert it to ``binary``. If it is already ``binary`` just return it.

from_unicode(text, origin=<DNS name .>, idna_codec=None)

source code 

Convert unicode text into a Name object.

Labels are encoded in IDN ACE form according to rules specified by the IDNA codec.

*text*, a ``text``, is the text to convert into a name.

*origin*, a ``dns.name.Name``, specifies the origin to append to non-absolute names. The default is the root name.

*idna_codec*, a ``dns.name.IDNACodec``, specifies the IDNA encoder/decoder. If ``None``, the default IDNA 2003 encoder/decoder is used.

Returns a ``dns.name.Name``.

from_text(text, origin=<DNS name .>, idna_codec=None)

source code 

Convert text into a Name object.

*text*, a ``text``, is the text to convert into a name.

*origin*, a ``dns.name.Name``, specifies the origin to append to non-absolute names. The default is the root name.

*idna_codec*, a ``dns.name.IDNACodec``, specifies the IDNA encoder/decoder. If ``None``, the default IDNA 2003 encoder/decoder is used.

Returns a ``dns.name.Name``.

from_wire(message, current)

source code 

Convert possibly compressed wire format into a Name.

*message* is a ``binary`` containing an entire DNS message in DNS wire form.

*current*, an ``int``, is the offset of the beginning of the name from the start of the message

Raises ``dns.name.BadPointer`` if a compression pointer did not point backwards in the message.

Raises ``dns.name.BadLabelType`` if an invalid label type was encountered.

Returns a ``(dns.name.Name, int)`` tuple consisting of the name that was read and the number of bytes of the wire format message which were consumed reading it.