forked from mikepultz/netdns2
-
Notifications
You must be signed in to change notification settings - Fork 1
JDWX DNSQuery Lookups
JDW edited this page Jul 17, 2022
·
1 revision
This class provides simple lookups used throughout the Net_DNS2 code
- Class name: Lookups
- Namespace: \JDWX\DNSQuery
const DNS_HEADER_SIZE = 12
const DNS_MAX_UDP_SIZE = 512
const QR_QUERY = 0
const QR_RESPONSE = 1
const OPCODE_QUERY = 0
const OPCODE_IQUERY = 1
const OPCODE_STATUS = 2
const OPCODE_NOTIFY = 4
const OPCODE_UPDATE = 5
const OPCODE_DSO = 6
const RR_CLASS_IN = 1
const RR_CLASS_CH = 3
const RR_CLASS_HS = 4
const RR_CLASS_NONE = 254
const RR_CLASS_ANY = 255
const RCODE_NOERROR = 0
const RCODE_FORMERR = 1
const RCODE_SERVFAIL = 2
const RCODE_NXDOMAIN = 3
const RCODE_NOTIMP = 4
const RCODE_REFUSED = 5
const RCODE_YXDOMAIN = 6
const RCODE_YXRRSET = 7
const RCODE_NXRRSET = 8
const RCODE_NOTAUTH = 9
const RCODE_NOTZONE = 10
const RCODE_DSOTYPENI = 11
const RCODE_BADSIG = 16
const RCODE_BADVERS = 16
const RCODE_BADKEY = 17
const RCODE_BADTIME = 18
const RCODE_BADMODE = 19
const RCODE_BADNAME = 20
const RCODE_BADALG = 21
const RCODE_BADTRUNC = 22
const RCODE_BADCOOKIE = 23
const E_NONE = 0
const E_DNS_FORMERR = self::RCODE_FORMERR
const E_DNS_SERVFAIL = self::RCODE_SERVFAIL
const E_DNS_NXDOMAIN = self::RCODE_NXDOMAIN
const E_DNS_NOTIMP = self::RCODE_NOTIMP
const E_DNS_REFUSED = self::RCODE_REFUSED
const E_DNS_YXDOMAIN = self::RCODE_YXDOMAIN
const E_DNS_YXRRSET = self::RCODE_YXRRSET
const E_DNS_NXRRSET = self::RCODE_NXRRSET
const E_DNS_NOTAUTH = self::RCODE_NOTAUTH
const E_DNS_NOTZONE = self::RCODE_NOTZONE
const E_DNS_BADSIG = self::RCODE_BADSIG
const E_DNS_BADKEY = self::RCODE_BADKEY
const E_DNS_BADTIME = self::RCODE_BADTIME
const E_DNS_BADMODE = self::RCODE_BADMODE
const E_DNS_BADNAME = self::RCODE_BADNAME
const E_DNS_BADALG = self::RCODE_BADALG
const E_DNS_BADTRUNC = self::RCODE_BADTRUNC
const E_DNS_BADCOOKIE = self::RCODE_BADCOOKIE
const E_NS_INVALID_FILE = 200
const E_NS_INVALID_ENTRY = 201
const E_NS_FAILED = 202
const E_NS_SOCKET_FAILED = 203
const E_NS_INVALID_SOCKET = 204
const E_PACKET_INVALID = 300
const E_PARSE_ERROR = 301
const E_HEADER_INVALID = 302
const E_QUESTION_INVALID = 303
const E_RR_INVALID = 304
const E_OPENSSL_ERROR = 400
const E_OPENSSL_UNAVAIL = 401
const E_OPENSSL_INV_PKEY = 402
const E_OPENSSL_INV_ALGO = 403
const E_CACHE_UNSUPPORTED = 500
const EDNS0_OPT_LLQ = 1
const EDNS0_OPT_UL = 2
const EDNS0_OPT_NSID = 3
const EDNS0_OPT_DAU = 5
const EDNS0_OPT_DHU = 6
const EDNS0_OPT_N3U = 7
const EDNS0_OPT_CLIENT_SUBNET = 8
const EDNS0_OPT_EXPIRE = 9
const EDNS0_OPT_COOKIE = 10
const EDNS0_OPT_TCP_KEEPALIVE = 11
const EDNS0_OPT_PADDING = 12
const EDNS0_OPT_CHAIN = 13
const EDNS0_OPT_KEY_TAG = 14
const EDNS0_OPT_CLIENT_TAG = 16
const EDNS0_OPT_SERVER_TAG = 17
const EDNS0_OPT_DEVICEID = 26946
const DNSSEC_ALGORITHM_RES = 0
const DNSSEC_ALGORITHM_RSAMD5 = 1
const DNSSEC_ALGORITHM_DH = 2
const DNSSEC_ALGORITHM_DSA = 3
const DNSSEC_ALGORITHM_ECC = 4
const DNSSEC_ALGORITHM_RSASHA1 = 5
const DNSSEC_ALGORITHM_DSANSEC3SHA1 = 6
const DSNSEC_ALGORITHM_RSASHA1NSEC3SHA1 = 7
const DNSSEC_ALGORITHM_RSASHA256 = 8
const DNSSEC_ALGORITHM_RSASHA512 = 10
const DNSSEC_ALGORITHM_ECCGOST = 12
const DNSSEC_ALGORITHM_ECDSAP256SHA256 = 13
const DNSSEC_ALGORITHM_ECDSAP384SHA384 = 14
const DNSSEC_ALGORITHM_ED25519 = 15
const DNSSEC_ALGORITHM_ED448 = 16
const DNSSEC_ALGORITHM_INDIRECT = 252
const DNSSEC_ALGORITHM_PRIVATEDNS = 253
const DNSSEC_ALGORITHM_PRIVATEOID = 254
const DNSSEC_DIGEST_RES = 0
const DNSSEC_DIGEST_SHA1 = 1
const DNSSEC_DIGEST_SHA256 = 2
const DNSSEC_DIGEST_GOST = 3
const DNSSEC_DIGEST_SHA384 = 4
public rrTypesById = []
- Visibility: public
public rrTypesByName = [
'SIG0' => 0,
# RFC 2931 pseudo type
'A' => 1,
# RFC 1035
'NS' => 2,
# RFC 1035
'MD' => 3,
# RFC 1035 - obsolete, Not implemented
'MF' => 4,
# RFC 1035 - obsolete, Not implemented
'CNAME' => 5,
# RFC 1035
'SOA' => 6,
# RFC 1035
'MB' => 7,
# RFC 1035 - obsolete, Not implemented
'MG' => 8,
# RFC 1035 - obsolete, Not implemented
'MR' => 9,
# RFC 1035 - obsolete, Not implemented
'NULL' => 10,
# RFC 1035 - obsolete, Not implemented
'WKS' => 11,
# RFC 1035
'PTR' => 12,
# RFC 1035
'HINFO' => 13,
# RFC 1035
'MINFO' => 14,
# RFC 1035 - obsolete, Not implemented
'MX' => 15,
# RFC 1035
'TXT' => 16,
# RFC 1035
'RP' => 17,
# RFC 1183
'AFSDB' => 18,
# RFC 1183
'X25' => 19,
# RFC 1183
'ISDN' => 20,
# RFC 1183
'RT' => 21,
# RFC 1183
'NSAP' => 22,
# RFC 1706
'NSAP_PTR' => 23,
# RFC 1348 - obsolete, Not implemented
'SIG' => 24,
# RFC 2535
'KEY' => 25,
# RFC 2535, RFC 2930
'PX' => 26,
# RFC 2163
'GPOS' => 27,
# RFC 1712 - Not implemented
'AAAA' => 28,
# RFC 3596
'LOC' => 29,
# RFC 1876
'NXT' => 30,
# RFC 2065, obsoleted by RFC 3755
'EID' => 31,
# [Patton][Patton1995]
'NIMLOC' => 32,
# [Patton][Patton1995]
'SRV' => 33,
# RFC 2782
'ATMA' => 34,
# Windows only
'NAPTR' => 35,
# RFC 2915
'KX' => 36,
# RFC 2230
'CERT' => 37,
# RFC 4398
'A6' => 38,
# downgraded to experimental by RFC 3363
'DNAME' => 39,
# RFC 2672
'SINK' => 40,
# Not implemented
'OPT' => 41,
# RFC 2671
'APL' => 42,
# RFC 3123
'DS' => 43,
# RFC 4034
'SSHFP' => 44,
# RFC 4255
'IPSECKEY' => 45,
# RFC 4025
'RRSIG' => 46,
# RFC 4034
'NSEC' => 47,
# RFC 4034
'DNSKEY' => 48,
# RFC 4034
'DHCID' => 49,
# RFC 4701
'NSEC3' => 50,
# RFC 5155
'NSEC3PARAM' => 51,
# RFC 5155
'TLSA' => 52,
# RFC 6698
'SMIMEA' => 53,
# RFC 8162
# 54 unassigned
'HIP' => 55,
# RFC 5205
'NINFO' => 56,
# Not implemented
'RKEY' => 57,
# Not implemented
'TALINK' => 58,
# DNSSEC Trust Anchor History Service draft (obsolete)
'CDS' => 59,
# RFC 7344
'CDNSKEY' => 60,
# RFC 7344
'OPENPGPKEY' => 61,
# RFC 7929
'CSYNC' => 62,
# RFC 7477
'ZONEMD' => 63,
# Not implemented yet
'SVCB' => 64,
# Not implemented yet
'HTTPS' => 65,
# Not implemented yet
# 66 - 98 unassigned
'SPF' => 99,
# RFC 4408
'UINFO' => 100,
# no RFC, Not implemented
'UID' => 101,
# no RFC, Not implemented
'GID' => 102,
# no RFC, Not implemented
'UNSPEC' => 103,
# no RFC, Not implemented
'NID' => 104,
# RFC 6742
'L32' => 105,
# RFC 6742
'L64' => 106,
# RFC 6742
'LP' => 107,
# RFC 6742
'EUI48' => 108,
# RFC 7043
'EUI64' => 109,
# RFC 7043
# 110 - 248 unassigned
'TKEY' => 249,
# RFC 2930
'TSIG' => 250,
# RFC 2845
'IXFR' => 251,
# RFC 1995 - only a full (AXFR) is supported
'AXFR' => 252,
# RFC 1035
'MAILB' => 253,
# RFC 883, Not implemented
'MAILA' => 254,
# RFC 973, Not implemented
'ANY' => 255,
# RFC 1035 - we support both 'ANY' and '*'
'URI' => 256,
# RFC 7553
'CAA' => 257,
# RFC 8659
'AVC' => 258,
# Application Visibility and Control
'DOA' => 259,
# Not implemented yet
'AMTRELAY' => 260,
# RFC 8777
# 261 - 32767 unassigned
'TA' => 32768,
# same as DS
'DLV' => 32769,
# RFC 4431
'ALIAS' => 65401,
'TYPE65534' => 65534,
]
- Visibility: public
public rrQTypesById = []
- Visibility: public
public rrQTypesByName = [
'IXFR' => 251,
# RFC 1995 - only a full (AXFR) is supported
'AXFR' => 252,
# RFC 1035
'MAILB' => 253,
# RFC 883, Not implemented
'MAILA' => 254,
# RFC 973, Not implemented
'ANY' => 255,
]
- Visibility: public
public rrMetaTypesById = []
- Visibility: public
public rrMetaTypesByName = [
'OPT' => 41,
# RFC 2671
'TKEY' => 249,
# RFC 2930
'TSIG' => 250,
]
- Visibility: public
public rrTypesClassToId = []
- Visibility: public
public rrTypesIdToClass = [
1 => \JDWX\DNSQuery\RR\A::class,
2 => \JDWX\DNSQuery\RR\NS::class,
5 => \JDWX\DNSQuery\RR\CNAME::class,
6 => \JDWX\DNSQuery\RR\SOA::class,
11 => \JDWX\DNSQuery\RR\WKS::class,
12 => \JDWX\DNSQuery\RR\PTR::class,
13 => \JDWX\DNSQuery\RR\HINFO::class,
15 => \JDWX\DNSQuery\RR\MX::class,
16 => \JDWX\DNSQuery\RR\TXT::class,
17 => \JDWX\DNSQuery\RR\RP::class,
18 => \JDWX\DNSQuery\RR\AFSDB::class,
19 => \JDWX\DNSQuery\RR\X25::class,
20 => \JDWX\DNSQuery\RR\ISDN::class,
21 => \JDWX\DNSQuery\RR\RT::class,
22 => \JDWX\DNSQuery\RR\NSAP::class,
24 => \JDWX\DNSQuery\RR\SIG::class,
25 => \JDWX\DNSQuery\RR\KEY::class,
26 => \JDWX\DNSQuery\RR\PX::class,
28 => \JDWX\DNSQuery\RR\AAAA::class,
29 => \JDWX\DNSQuery\RR\LOC::class,
31 => \JDWX\DNSQuery\RR\EID::class,
32 => \JDWX\DNSQuery\RR\NIMLOC::class,
33 => \JDWX\DNSQuery\RR\SRV::class,
34 => \JDWX\DNSQuery\RR\ATMA::class,
35 => \JDWX\DNSQuery\RR\NAPTR::class,
36 => \JDWX\DNSQuery\RR\KX::class,
37 => \JDWX\DNSQuery\RR\CERT::class,
39 => \JDWX\DNSQuery\RR\DNAME::class,
41 => \JDWX\DNSQuery\RR\OPT::class,
42 => \JDWX\DNSQuery\RR\APL::class,
43 => \JDWX\DNSQuery\RR\DS::class,
44 => \JDWX\DNSQuery\RR\SSHFP::class,
45 => \JDWX\DNSQuery\RR\IPSECKEY::class,
46 => \JDWX\DNSQuery\RR\RRSIG::class,
47 => \JDWX\DNSQuery\RR\NSEC::class,
48 => \JDWX\DNSQuery\RR\DNSKEY::class,
49 => \JDWX\DNSQuery\RR\DHCID::class,
50 => \JDWX\DNSQuery\RR\NSEC3::class,
51 => \JDWX\DNSQuery\RR\NSEC3PARAM::class,
52 => \JDWX\DNSQuery\RR\TLSA::class,
53 => \JDWX\DNSQuery\RR\SMIMEA::class,
55 => \JDWX\DNSQuery\RR\HIP::class,
58 => \JDWX\DNSQuery\RR\TALINK::class,
59 => \JDWX\DNSQuery\RR\CDS::class,
60 => \JDWX\DNSQuery\RR\CDNSKEY::class,
61 => \JDWX\DNSQuery\RR\OPENPGPKEY::class,
62 => \JDWX\DNSQuery\RR\CSYNC::class,
99 => \JDWX\DNSQuery\RR\SPF::class,
104 => \JDWX\DNSQuery\RR\NID::class,
105 => \JDWX\DNSQuery\RR\L32::class,
106 => \JDWX\DNSQuery\RR\L64::class,
107 => \JDWX\DNSQuery\RR\LP::class,
108 => \JDWX\DNSQuery\RR\EUI48::class,
109 => \JDWX\DNSQuery\RR\EUI64::class,
249 => \JDWX\DNSQuery\RR\TKEY::class,
250 => \JDWX\DNSQuery\RR\TSIG::class,
# 251 - IXFR - handled as a full zone transfer (252)
# 252 - AXFR - handled as a function call
255 => \JDWX\DNSQuery\RR\ANY::class,
256 => \JDWX\DNSQuery\RR\URI::class,
257 => \JDWX\DNSQuery\RR\CAA::class,
258 => \JDWX\DNSQuery\RR\AVC::class,
260 => \JDWX\DNSQuery\RR\AMTRELAY::class,
32768 => \JDWX\DNSQuery\RR\TA::class,
32769 => \JDWX\DNSQuery\RR\DLV::class,
65401 => \JDWX\DNSQuery\RR\ALIAS::class,
65534 => \JDWX\DNSQuery\RR\TYPE65534::class,
]
- Visibility: public
public classesById = []
- Visibility: public
public classesByName = [
'IN' => self::RR_CLASS_IN,
# RFC 1035
'CH' => self::RR_CLASS_CH,
# RFC 1035
'HS' => self::RR_CLASS_HS,
# RFC 1035
'NONE' => self::RR_CLASS_NONE,
# RFC 2136
'ANY' => self::RR_CLASS_ANY,
]
- Visibility: public
public resultCodeMessages = [self::RCODE_NOERROR => 'The request completed successfully.', self::RCODE_FORMERR => 'The name server was unable to interpret the query.', self::RCODE_SERVFAIL => 'The name server was unable to process this query due to a problem with the name server.', self::RCODE_NXDOMAIN => 'The domain name referenced in the query does not exist.', self::RCODE_NOTIMP => 'The name server does not support the requested kind of query.', self::RCODE_REFUSED => 'The name server refuses to perform the specified operation for policy reasons.', self::RCODE_YXDOMAIN => 'Name Exists when it should not.', self::RCODE_YXRRSET => 'RR Set Exists when it should not.', self::RCODE_NXRRSET => 'RR Set that should exist does not.', self::RCODE_NOTAUTH => 'Server Not Authoritative for zone.', self::RCODE_NOTZONE => 'Name not contained in zone.', self::RCODE_BADSIG => 'TSIG Signature Failure.', self::RCODE_BADKEY => 'Key not recognized.', self::RCODE_BADTIME => 'Signature out of time window.', self::RCODE_BADMODE => 'Bad TKEY Mode.', self::RCODE_BADNAME => 'Duplicate key name.', self::RCODE_BADALG => 'Algorithm not supported.', self::RCODE_BADTRUNC => 'Bad truncation.']
- Visibility: public
public resultCodeTags = [self::RCODE_NOERROR => 'NOERROR', self::RCODE_FORMERR => 'FORMERR', self::RCODE_SERVFAIL => 'SERVFAIL', self::RCODE_NXDOMAIN => 'NXDOMAIN', self::RCODE_NOTIMP => 'NOTIMP', self::RCODE_REFUSED => 'REFUSED', self::RCODE_YXDOMAIN => 'YXDOMAIN', self::RCODE_YXRRSET => 'YXRRSET', self::RCODE_NXRRSET => 'NXRRSET', self::RCODE_NOTAUTH => 'NOTAUTH', self::RCODE_NOTZONE => 'NOTZONE', self::RCODE_BADSIG => 'BADSIG', self::RCODE_BADKEY => 'BADKEY', self::RCODE_BADTIME => 'BADTIME', self::RCODE_BADMODE => 'BADMODE', self::RCODE_BADNAME => 'BADNAME', self::RCODE_BADALG => 'BADALG', self::RCODE_BADTRUNC => 'BADTRUNC']
- Visibility: public
public opcodeTags = [self::OPCODE_QUERY => 'QUERY', self::OPCODE_IQUERY => 'IQUERY', self::OPCODE_STATUS => 'STATUS', 3 => 'OPCODE3', self::OPCODE_NOTIFY => 'NOTIFY', self::OPCODE_UPDATE => 'UPDATE', 6 => 'OPCODE6', 7 => 'OPCODE7', 8 => 'OPCODE8', 9 => 'OPCODE9', 10 => 'OPCODE10', 11 => 'OPCODE11', 12 => 'OPCODE12', 13 => 'OPCODE13', 14 => 'OPCODE14', 15 => 'OPCODE15']
- Visibility: public
public algorithmNameToID = []
- Visibility: public
public algorithmIdToName = [self::DNSSEC_ALGORITHM_RES => 'RES', self::DNSSEC_ALGORITHM_RSAMD5 => 'RSAMD5', self::DNSSEC_ALGORITHM_DH => 'DH', self::DNSSEC_ALGORITHM_DSA => 'DSA', self::DNSSEC_ALGORITHM_ECC => 'ECC', self::DNSSEC_ALGORITHM_RSASHA1 => 'RSASHA1', self::DNSSEC_ALGORITHM_DSANSEC3SHA1 => 'DSA-NSEC3-SHA1', self::DSNSEC_ALGORITHM_RSASHA1NSEC3SHA1 => 'RSASHA1-NSEC3-SHA1', self::DNSSEC_ALGORITHM_RSASHA256 => 'RSASHA256', self::DNSSEC_ALGORITHM_RSASHA512 => 'RSASHA512', self::DNSSEC_ALGORITHM_ECCGOST => 'ECC-GOST', self::DNSSEC_ALGORITHM_ECDSAP256SHA256 => 'ECDSAP256SHA256', self::DNSSEC_ALGORITHM_ECDSAP384SHA384 => 'ECDSAP384SHA384', self::DNSSEC_ALGORITHM_ED25519 => 'ED25519', self::DNSSEC_ALGORITHM_ED448 => 'ED448', self::DNSSEC_ALGORITHM_INDIRECT => 'INDIRECT', self::DNSSEC_ALGORITHM_PRIVATEDNS => 'PRIVATEDNS', self::DNSSEC_ALGORITHM_PRIVATEOID => 'PRIVATEOID']
- Visibility: public
public digestNameToId = []
- Visibility: public
public digestIdToName = [self::DNSSEC_DIGEST_RES => 'RES', self::DNSSEC_DIGEST_SHA1 => 'SHA-1', self::DNSSEC_DIGEST_SHA256 => 'SHA-256', self::DNSSEC_DIGEST_GOST => 'GOST-R-34.11-94', self::DNSSEC_DIGEST_SHA384 => 'SHA-384']
- Visibility: public
public protocolById = []
- Visibility: public
public protocolByName = [
'ICMP' => 1,
'IGMP' => 2,
'GGP' => 3,
'ST' => 5,
'TCP' => 6,
'UCL' => 7,
'EGP' => 8,
'IGP' => 9,
'BBN-RCC-MON' => 10,
'NVP-II' => 11,
'PUP' => 12,
'ARGUS' => 13,
'EMCON' => 14,
'XNET' => 15,
'CHAOS' => 16,
'UDP' => 17,
'MUX' => 18,
'DCN-MEAS' => 19,
'HMP' => 20,
'PRM' => 21,
'XNS-IDP' => 22,
'TRUNK-1' => 23,
'TRUNK-2' => 24,
'LEAF-1' => 25,
'LEAF-2' => 26,
'RDP' => 27,
'IRTP' => 28,
'ISO-TP4' => 29,
'NETBLT' => 30,
'MFE-NSP' => 31,
'MERIT-INP' => 32,
'SEP' => 33,
# 34 - 60 - Unassigned
# 61 - any host internal protocol
'CFTP' => 62,
# 63 - any local network
'SAT-EXPAK' => 64,
'MIT-SUBNET' => 65,
'RVD' => 66,
'IPPC' => 67,
# 68 - any distributed file system
'SAT-MON' => 69,
# 70 - Unassigned
'IPCV' => 71,
# 72 - 75 - Unassigned
'BR-SAT-MON' => 76,
# 77 - Unassigned
'WB-MON' => 78,
'WB-EXPAK' => 79,
]
- Visibility: public
public rrClassByPHPId = [DNS_A => \JDWX\DNSQuery\RR\A::class, DNS_CNAME => \JDWX\DNSQuery\RR\CNAME::class, DNS_HINFO => \JDWX\DNSQuery\RR\HINFO::class, DNS_CAA => \JDWX\DNSQuery\RR\CAA::class, DNS_MX => \JDWX\DNSQuery\RR\MX::class, DNS_NS => \JDWX\DNSQuery\RR\NS::class, DNS_PTR => \JDWX\DNSQuery\RR\PTR::class, DNS_SOA => \JDWX\DNSQuery\RR\SOA::class, DNS_TXT => \JDWX\DNSQuery\RR\TXT::class, DNS_AAAA => \JDWX\DNSQuery\RR\AAAA::class, DNS_SRV => \JDWX\DNSQuery\RR\SRV::class, DNS_NAPTR => \JDWX\DNSQuery\RR\NAPTR::class, DNS_ALL => \JDWX\DNSQuery\RR\ALL::class, DNS_ANY => \JDWX\DNSQuery\RR\ANY::class]
- Visibility: public
private nextPacketId = null
- Visibility: private
int JDWX\DNSQuery\Lookups::nextPacketId()
Return the next available packet ID.
- Visibility: public
- This method is static.