-
Notifications
You must be signed in to change notification settings - Fork 2
JDWX DNSQuery RR RR
This is the base class for DNS Resource Records
Each resource record type (defined in RR/*.php) extends this class for base functionality.
This class handles parsing and constructing the common parts of the DNS resource records, while the RR specific functionality is handled in each child class.
DNS resource record format - RFC1035 section 4.1.3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | / / / NAME / | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TYPE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | CLASS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TTL | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | rdLength | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--| / RData / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- Class name: RR
- Namespace: \JDWX\DNSQuery\RR
- This is an abstract class
public name
- Visibility: public
public type
- Visibility: public
public class
- Visibility: public
public ttl
- Visibility: public
public rdLength
- Visibility: public
public rdata = ''
- Visibility: public
mixed JDWX\DNSQuery\RR\RR::__construct(?\JDWX\DNSQuery\Packet\Packet i_packet, ?array i_rr)
Constructor - builds a new RR object
- Visibility: public
- i_packet ?\JDWX\DNSQuery\Packet\Packet - a Packet or null to create an empty object
- i_rr ?array - an array with RR parse values or null to create an empty object
static JDWX\DNSQuery\RR\RR::fromString(string line)
parses a standard RR format lines, as defined by rfc1035 (kinda)
In our implementation, the domain must be specified- format must be
<name> [<ttl>] [<class>] <type> <rdata>
or [] []
name, title, class and type are parsed by this function, rdata is passed to the RR specific classes for parsing.
- Visibility: public
- This method is static.
- line string - a standard DNS config line
?\JDWX\DNSQuery\RR\RR JDWX\DNSQuery\RR\RR::parse(\JDWX\DNSQuery\Packet\Packet packet)
parses a binary packet, and returns the appropriate RR object, based on the RR type of the binary content.
- Visibility: public
- This method is static.
- packet JDWX\DNSQuery\Packet\Packet - a Packet used for decompressing names
string JDWX\DNSQuery\RR\RR::__toString()
magic __toString() method to return the RR object as a string
- Visibility: public
array JDWX\DNSQuery\RR\RR::asArray()
return the same data as __toString(), but as an array, so each value can be used without having to parse the string.
- Visibility: public
string JDWX\DNSQuery\RR\RR::cleanString(string i_data)
cleans up some RR data
- Visibility: public
- i_data string - the text string to clean
string JDWX\DNSQuery\RR\RR::get(\JDWX\DNSQuery\Packet\Packet i_packet)
returns a binary packed DNS RR object
- Visibility: public
- i_packet JDWX\DNSQuery\Packet\Packet - a Packet used for compressing names
array JDWX\DNSQuery\RR\RR::getPHPRData()
Get the rdata in the format used by PHP's dns_get_record() function.
- Visibility: public
array JDWX\DNSQuery\RR\RR::getPHPRecord()
Get the whole record in the format used by PHP's dns_get_record() function.
See the caveats in getPHPRData() about RR-specific data.
- Visibility: public
bool JDWX\DNSQuery\RR\RR::set(\JDWX\DNSQuery\Packet\Packet i_packet, array i_rr)
builds a new RR object
- Visibility: public
- i_packet JDWX\DNSQuery\Packet\Packet - (output) a Packet or null to create an empty object
- i_rr array - an array with RR parse values or null to create an empty object
string[] JDWX\DNSQuery\RR\RR::buildString(string[] i_chunks)
Build an array of strings from an array of chunks of text split by spaces.
- Visibility: protected
- i_chunks string[] - an array of chunks of text split by spaces
string JDWX\DNSQuery\RR\RR::formatString(string i_str)
return a formatted string; if a string has spaces in it, then return it with double quotes around it, otherwise, return it as it was passed in.
- Visibility: protected
- i_str string - the string to format
bool JDWX\DNSQuery\RR\RR::rrFromString(string[] i_rData)
Parse the rdata portion from a standard DNS config line
- Visibility: protected
- This method is abstract.
- i_rData string[] - a string split line of values for the rdata
?string JDWX\DNSQuery\RR\RR::rrGet(\JDWX\DNSQuery\Packet\Packet i_packet)
Returns the rdata portion of the RR, advancing the referenced packet offset by the correct size.
- Visibility: protected
- This method is abstract.
- i_packet JDWX\DNSQuery\Packet\Packet - Packet to use for compressed names
string JDWX\DNSQuery\RR\RR::rrGetEx(\JDWX\DNSQuery\Packet\Packet i_packet)
returns a binary packet DNS RR object and throws an exception if it fails
- Visibility: protected
- i_packet JDWX\DNSQuery\Packet\Packet - Packet to use for compressed names
bool JDWX\DNSQuery\RR\RR::rrSet(\JDWX\DNSQuery\Packet\Packet i_packet)
Parse the rdata from the current position of the provided Packet object, advancing the packet's internal offset accordingly.
- Visibility: protected
- This method is abstract.
- i_packet JDWX\DNSQuery\Packet\Packet - a Packet to parse the RR from
string JDWX\DNSQuery\RR\RR::rrToString()
Return the rdata portion of the packet as a string.
This is not the same as the __toString() magic method, which returns the whole RR.
- Visibility: protected
- This method is abstract.