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 newDN():
myname = newDN("www.example.com")
PowerDNS 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 = newDN("example.com")
if myname:isPartOf(name2) then -- prints "it is"
print('it is')
end
Functions and methods of a DNSName¶
- 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.- DNSName:canonCompare(name) -> bool
Performs a comparison of DNS names in canonical order. Returns true if the DNSName comes before
name. See https://tools.ietf.org/html/rfc4034#section-6
- DNSName:makeRelative(name) -> DNSName
Returns a new DNSName that is relative to
namename = newDN("bb.a.example.com.") parent = newDN("example.com.") rel = name:makeRelative(parent) -- contains DNSName("bb.a.")
- DNSName:isPartOf(name) -> bool
Returns true if the DNSName is part of the DNS tree of
name.
- DNSName:toString() -> string
Returns a human-readable form of the DNSName
- DNSName:toStringNoDot() -> string
Returns a human-readable form of the DNSName without the trailing dot
- DNSName:chopOff() -> bool
Removes the left-most label and returns
true.falseis returned if no label was removed
- DNSName:countLabels() -> int
Returns the number of DNSLabels in the name
- DNSName:wireLength() -> int
Returns the length in bytes of the DNSName as it would be on the wire.
- DNSName::getRawLabels() -> [ string ]
Returns a table that contains the raw labels of the DNSName
- DNSName::countLabels() -> int
Returns the number of labels of the DNSName
- DNSName::equal(name) -> bool
Perform a comparison of the DNSName to the given
name. You can also compare directly two DNSName objects using the==operator- Parameters:¶
- name : string
The name to compare to