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
DNSNameobject ofname.- Parameters:¶
name (
string) – The name to create a DNSName for
- class DNSName¶
A
DNSNameobject 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.falseis 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.
-
makeRelative(name):
DNSName()¶ 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.
-
toDNSString():
string¶ Returns a wire format form of the DNSName, suitable for usage in
SpoofRawAction().
-
toStringNoDot():
string¶ 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.
-
append(labels: [
DNSName(),string])¶ Added in version 2.2.0.
Append
labelsto the DNSName.labelscan be a string or DNSName containing one or more labels.local n = newDNSName("example.com") n:append("example") -- n is now "example.com.example" local other_name = newDNSName("foobar.invalid") n:append(other_name) -- n is now "example.com.example.foobar.invalid")
-
chopOff():