The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::DNS::Codes - collection of C library DNS codes

SYNOPSIS

  use Net::DNS::Codes qw(
        :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

  ------- :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
    
      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
  • $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,
            T_NS            => 2,
            T_MD            => 3,
            T_MF            => 4,
            T_CNAME         => 5,
            T_SOA           => 6,
            T_MB            => 7,
            T_MG            => 8,
            T_MR            => 9,
            T_NULL          => 10,
            T_WKS           => 11,
            T_PTR           => 12,
            T_HINFO         => 13,
            T_MINFO         => 14,
            T_MX            => 15,
            T_TXT           => 16,
            T_RP            => 17,
            T_AFSDB         => 18,
            T_X25           => 19,
            T_ISDN          => 20,
            T_RT            => 21,
            T_NSAP          => 22,
            T_NSAP_PTR      => 23,
            T_SIG           => 24,
            T_KEY           => 25,
            T_PX            => 26,
            T_GPOS          => 27,
            T_AAAA          => 28,
            T_LOC           => 29,
            T_NXT           => 30,
            T_EID           => 31,
            T_NIMLOC        => 32,
            T_SRV           => 33,
            T_ATMA          => 34,
            T_NAPTR         => 35,
            T_KX            => 36,
            T_CERT          => 37,
            T_A6            => 38,
            T_DNAME         => 39,
            T_SINK          => 40,
            T_OPT           => 41,
            T_DS            => 43,
            T_TKEY          => 249,
            T_TSIG          => 250,
            T_IXFR          => 251,
            T_AXFR          => 252,
            T_MAILB         => 253,
            T_MAILA         => 254,
            T_ANY           => 255,
  • (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

  ------- 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_DS 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, 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