DNSName objects¶
A DNSName
object represents a name in the DNS. It has several functions that can manipulate it without conversions to strings.
Creating a DNSName
is done with the newDNSName()
:
myname = newDNSName("www.example.com")
dnsdist will complain loudly if the name is invalid (e.g. too long, dot in the wrong place).
The myname
variable has several functions to get information from it
print(myname:countLabels()) -- prints "3"
print(myname:wirelength()) -- prints "17"
name2 = newDNSName("example.com")
if myname:isPartOf(name2) then -- prints "it is"
print('it is')
end
Functions and methods of a DNSName
¶
-
newDNSName
(name) → DNSName¶ Returns the
DNSName
object ofname
.Parameters: name (string) – The name to create a DNSName for
-
class
DNSName
¶ A
DNSName
object represents a name in the DNS. It is returned by several functions and has several functions to programmatically interact with it.-
:
chopOff
() → bool¶ Removes the left-most label and returns
true
.false
is returned if no label was removed
-
:
countLabels
() → int¶ Returns the number of DNSLabels in the name
-
:
isPartOf
(name) → bool¶ Returns true if the DNSName is part of the DNS tree of
name
.Parameters: name (DNSName) – The name to check against
-
:
makeRelative
(name) → DNSName¶ New in version 1.8.0.
Provided that the current name is part of the supplied name, returns a new DNSName composed only of the labels that are below the supplied name (ie making www.powerdns.com relative to powerdns.com would return only wwww) Otherwise an empty (unset) DNSName is returned.
Parameters: name (DNSName) – The name to make us relative against
-
:
toDNSString
() → string¶ Returns a wire format form of the DNSName, suitable for usage in
SpoofRawAction()
.
-
:
toStringNoDot
() → string¶ New in version 1.8.0.
Returns a human-readable form of the DNSName, without the trailing dot.
-
:
wirelength
() → int¶ Returns the length in bytes of the DNSName as it would be on the wire.
-