NAME
Net::DNS::Codes - collection of C
library DNS codes
SYNOPSIS
:header
:RRs
:constants
:all
(or any individual item)
);
--------- :header -------
$textval
= RBitsTxt->{masked_bits};
$textval
= RcodeTxt->{numeric};
$textval
= OpcodeTxt->{numeric};
$code
= (one of text below)
QR AA TC RD RA MBZ Z AD CD
BITS_QUERY BITS_IQUERY BITS_STATUS BITS_NS_NOTIFY_OP BITS_NS_UPDATE_OP
QUERY IQUERY STATUS NS_NOTIFY_OP NS_UPDATE_OP
NOERROR FORMERR SERVFAIL NXDOMAIN NOTIMP REFUSED YXDOMAIN YXRRSET NXRRSET NOTAUTH NOTZONE BADSIG BADKEY BADTIME
for
flag manipulation
RCODE_MASK BITS_OPCODE_MASK
------- :RRs -------
$textval
= ClassTxt->{numeric};
$textval
= TypeTxt->{numeric};
$code
= (one of text below)
C_IN C_CHAOS C_HS C_NONE C_ANY
T_A T_NS T_MD T_MF T_CNAME T_SOA T_MB T_MG T_MR T_NULL T_WKS T_PTR T_HINFO T_MINFO T_MX T_TXT T_RP T_AFSDB T_X25 T_ISDN T_RT T_NSAP T_NSAP_PTR T_SIG T_KEY T_PX T_GPOS T_AAAA T_LOC T_NXT T_EID T_NIMLOC T_SRV T_ATMA T_NAPTR T_KX T_CERT T_A6 T_DNAME T_SINK T_OPT T_TKEY T_TSIG T_IXFR T_AXFR T_MAILB T_MAILA T_ANY
------- :constants -------
$code
= (one of test below)
PACKETSZ NS_PACKETSZ MAXDNAME NS_MAXDNAME MAXCDNAME NS_MAXCDNAME MAXLABEL NS_MAXLABEL HFIXEDSZ NS_HFIXEDSZ QFIXEDSZ NS_QFIXEDSZ RRFIXEDSZ NS_RRFIXEDSZ INT32SZ NS_INT32SZ INT16SZ NS_INT16SZ NS_INT8SZ INADDRSZ NS_INADDRSZ IN6ADDRSZ NS_IN6ADDRSZ INDIR_MASK NS_CMPRSFLGS NAMESERVER_PORT NS_DEFAULTPORT
$code
= INT8SZ (not a DNS code, added
for
convenience)
DESCRIPTION
Net::DNS::Codes provides forward and reverse lookup for most common C
library DNS codes as well as all the codes for the DNS HEADER field.
$bitmask = XX
Return the bitmask
for
the code:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z|AD|CD| Rcode |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
QR
=> 1000_0000_0000_0000
BitsOpcode
=> Opcode binary value
left shifted 11 bits
AA
=> 100_0000_0000
TC
=> 10_0000_0000
RD
=> 1_0000_0000
RA
=> 1000_0000
MBZ or
Z
=> 100_0000
AD
=> 10_0000
CD
=> 1_0000
Rcode
=> Rcode binary value
RCODE_MASK
=> 1111_1111_1111_0000
where BitsOpcode =
BITS_QUERY
=> 0,
BITS_IQUERY
=> 1000_0000_0000
# 1 << 11
BITS_STATUS
=> 1_0000_0000_0000
# 2 << 11
BITS_NS_NOTIFY_OP
=> 10_0000_0000_0000
# 4 << 11
BITS_NS_UPDATE_OP
=> 10_1000_0000_0000
# 5 << 11
BITS_OPCODE_MASK
=> 1000_0111_1111_1111
$textval = RBitsTxt->{masked_bits};
Returns the TEXT string for the bit fields above.
NOTE: that MBZ and Z have the same value.
The text string
'MBZ'
is returned
for
0x1 << 6
$textval = RcodeTxt->{numeric};
Return the TEXT string
for
numeric code.
NOERROR
=> 0,
FORMERR
=> 1,
SERVFAIL
=> 2,
NXDOMAIN
=> 3,
NOTIMP
=> 4,
REFUSED
=> 5,
YXDOMAIN
=> 6,
YXRRSET
=> 7,
NXRRSET
=> 8,
NOTAUTH
=> 9,
NOTZONE
=> 10,
BADSIG
=> 16,
BADKEY
=> 17,
BADTIME
=> 18,
$textval = OpcodeTxt->{numeric};
Return the TEXT string
for
numeric code.
QUERY
=> 0,
IQUERY
=> 1,
STATUS
=> 2,
NS_NOTIFY_OP
=> 4,
NS_UPDATE_OP
=> 5,
$textval = ClassTxt->{numeric};
Return the TEXT string
for
numeric code.
C_IN
=> 1,
C_CHAOS
=> 3,
C_HS
=> 4,
C_NONE
=> 254,
C_ANY
=> 255,
$textval = TypeTxt->{numeric};
Return the TEXT string
for
numeric code.
T_A
=> 1,
# rfc1035.txt
T_NS
=> 2,
# rfc1035.txt
T_MD
=> 3,
# rfc1035.txt
T_MF
=> 4,
# rfc1035.txt
T_CNAME
=> 5,
# rfc1035.txt
T_SOA
=> 6,
# rfc1035.txt
T_MB
=> 7,
# rfc1035.txt
T_MG
=> 8,
# rfc1035.txt
T_MR
=> 9,
# rfc1035.txt
T_NULL
=> 10,
# rfc1035.txt
T_WKS
=> 11,
# rfc1035.txt
T_PTR
=> 12,
# rfc1035.txt
T_HINFO
=> 13,
# rfc1035.txt
T_MINFO
=> 14,
# rfc1035.txt
T_MX
=> 15,
# rfc1035.txt
T_TXT
=> 16,
# rfc1035.txt
T_RP
=> 17,
# rfc1183.txt
T_AFSDB
=> 18,
# rfc1183.txt
T_X25
=> 19,
# rfc1183.txt
T_ISDN
=> 20,
# rfc1183.txt
T_RT
=> 21,
# rfc1183.txt
T_NSAP
=> 22,
# rfc1706.txt
T_NSAP_PTR
=> 23,
# rfc1348.txt
T_SIG
=> 24,
# rfc2535.txt
T_KEY
=> 25,
# rfc2535.txt
T_PX
=> 26,
# rfc2163.txt
T_GPOS
=> 27,
# rfc1712.txt
T_AAAA
=> 28,
# rfc1886.txt
T_LOC
=> 29,
# rfc1876.txt
T_NXT
=> 30,
# rfc2535.txt
T_EID
=> 31,
# draft-ietf-nimrod-dns-02.txt
T_NIMLOC
=> 32,
# draft-ietf-nimrod-dns-02.txt
T_SRV
=> 33,
# rfc2052.txt
T_ATMA
=> 34,
# af-saa-0069.000.txt
T_NAPTR
=> 35,
# rfc2168.txt
T_KX
=> 36,
# rfc2230.txt
T_CERT
=> 37,
# rfc2538.txt
T_A6
=> 38,
# rfc2874.txt
T_DNAME
=> 39,
# rfc2672.txt
T_SINK
=> 40,
# draft-ietf-dnsind-kitchen-sink-01.txt
T_OPT
=> 41,
# rfc2671.txt
T_APL
=> 42,
# rfc3123.txt
T_DS
=> 43,
# draft-ietf-dnsext-delegation-signer-15.txt
T_SSHFP
=> 44,
# rfc4255.txt
T_IPSECKEY
=> 45,
# rfc4025.txt
T_RRSIG
=> 46,
# rfc4034.txt
T_NSEC
=> 47,
# rfc4034.txt
T_DNSKEY
=> 48,
# rfc4034.txt
T_DHCID
=> 49,
# rfc4701.txt
T_NSEC3
=> 50,
# rfc5155.txt
T_NSEC3PARAM
=> 51,
# rfc5155.txt
# unassigned 52 - 54
T_HIP
=> 55,
# rfc5205.txt
T_NINFO
=> 56,
# unknown
T_RKEY
=> 57,
# draft-reid-dnsext-rkey-00.txt
T_ALINK
=> 58,
# draft-ietf-dnsop-dnssec-trust-history-02.txt
T_CDS
=> 59,
# draft-barwood-dnsop-ds-publish-02.txt
# unassigned 60 - 98
T_UINFO
=> 100,
# reserved
T_UID
=> 101,
# reserved
T_GID
=> 102,
# reserved
T_UNSPEC
=> 103,
# reserved
# unassigned 104 - 248
T_TKEY
=> 249,
# rfc2930.txt
T_TSIG
=> 250,
# rfc2931.txt
T_IXFR
=> 251,
# rfc1995.txt
T_AXFR
=> 252,
# rfc1035.txt
T_MAILB
=> 253,
# rfc973.txt
T_MAILA
=> 254,
# rfc973.txt
T_ANY
=> 255,
# rfc1886.txt
(various constants)
PACKETSZ NS_PACKETSZ 512
MAXDNAME NS_MAXDNAME 1025
MAXCDNAME NS_MAXCDNAME 255
MAXLABEL NS_MAXLABEL 63
HFIXEDSZ NS_HFIXEDSZ 12
QFIXEDSZ NS_QFIXEDSZ 4
RRFIXEDSZ NS_RRFIXEDSZ 10
INT32SZ NS_INT32SZ 4
INT16SZ NS_INT16SZ 2
INT8SZ NS_INT8SZ 1
INADDRSZ NS_INADDRSZ 4
IN6ADDRSZ NS_IN6ADDRSZ 16
INDIR_MASK NS_CMPRSFLGS 0xc0
NAMESERVER_PORT NS_DEFAULTPORT 53
INSTALLATION
To install this module, type:
perl Makfile.PL
make
make test
make install
EXPORT_OK
-------
for
tag :header -------
RBitsTxt RcodeTxt OpcodeTxt
QR AA TC RD RA MBZ Z AD CD
BITS_QUERY BITS_IQUERY BITS_STATUS BITS_NS_NOTIFY_OP BITS_NS_UPDATE_OP
QUERY IQUERY STATUS NS_NOTIFY_OP NS_UPDATE_OP
NOERROR FORMERR SERVFAIL NXDOMAIN NOTIMP REFUSED YXDOMAIN YXRRSET NXRRSET NOTAUTH NOTZONE BADSIG BADKEY BADTIME
BITS_OPCODE_MASK RCODE_MASK
-------
for
tag :RRs -------
$textval
= ClassTxt->{numeric};
$textval
= TypeTxt->{numeric};
$code
= (one of text below)
C_IN C_CHAOS C_HS C_NONE C_ANY
T_A T_NS T_MD T_MF T_CNAME T_SOA T_MB T_MG T_MR T_NULL T_WKS T_PTR T_HINFO T_MINFO T_MX T_TXT T_RP T_AFSDB T_X25 T_ISDN T_RT T_NSAP T_NSAP_PTR T_SIG T_KEY T_PX T_GPOS T_AAAA T_LOC T_NXT T_EID T_NIMLOC T_SRV T_ATMA T_NAPTR T_KX T_CERT T_A6 T_DNAME T_SINK T_OPT T_APL T_DS T_SSHFP T_IPSECKEY T_RRSIG T_NSEC T_DNSKEY T_DHCID T_NSEC3 T_NSEC3PARAM T_HIP T_NINFO T_RKEY T_ALINK T_CDS T_UINFO T_UID T_GID T_UNSPEC T_TKEY T_TSIG T_IXFR T_AXFR T_MAILB T_MAILA T_ANY
-------
for
tag :constants -------
PACKETSZ NS_PACKETSZ MAXDNAME NS_MAXDNAME MAXCDNAME NS_MAXCDNAME MAXLABEL NS_MAXLABEL HFIXEDSZ NS_HFIXEDSZ QFIXEDSZ NS_QFIXEDSZ RRFIXEDSZ NS_RRFIXEDSZ INT32SZ NS_INT32SZ INT16SZ NS_INT16SZ NS_INT8SZ INADDRSZ NS_INADDRSZ IN6ADDRSZ NS_IN6ADDRSZ INDIR_MASK NS_CMPRSFLGS NAMESERVER_PORT NS_DEFAULTPORT INT8SZ
EXPORT_TAGS
:header
:RRs
:constants
:all
AUTHOR
Michael Robinton, michael@bizsystems.com
COPYRIGHT
Copyright 2003 - 2014, Michael Robinton & BizSystems This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
SEE ALSO
perl(1), /usr/include/resolv.h /usr/include/arpa/nameser.h /usr/include/namser_compat.h