Class DnsDomainName

  • All Implemented Interfaces:
    java.io.Serializable

    public final class DnsDomainName
    extends java.lang.Object
    implements java.io.Serializable
    DNS domain name
     labels:
         1            len             1            len
     +-------+-------+-//-+-------+-------+-------+-//-+-------+--//--+-------+
     |  len  |       label        |  len  |       label        |      |len (0)|
     +-------+-------+-//-+-------+-------+-------+-//-+-------+--//--+-------+
    
     pointer:
     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
     | 1  1|                OFFSET                   |
     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
     
    Since:
    pcap4j 1.7.1
    See Also:
    RFC 1035, Serialized Form
    • Field Detail

      • LOG

        private static final org.slf4j.Logger LOG
      • ROOT_DOMAIN

        public static final DnsDomainName ROOT_DOMAIN
        The root domain (zero)
      • labels

        private final java.util.List<java.lang.String> labels
      • name

        private final java.lang.String name
      • pointer

        private final java.lang.Short pointer
    • Method Detail

      • joinLabels

        private java.lang.String joinLabels​(java.util.List<java.lang.String> lbls)
      • getLabels

        public java.util.List<java.lang.String> getLabels()
        Returns:
        labels
      • getName

        public java.lang.String getName()
        Returns:
        name, which is made by joining labels with "."
      • getPointer

        public java.lang.Short getPointer()
        Returns:
        pointer (0 - 16383 (inclusive)). May be null.
      • getPointerAsInt

        public java.lang.Integer getPointerAsInt()
        Returns:
        pointer (0 - 16383 (inclusive)). May be null.
      • decompress

        public java.lang.String decompress​(byte[] headerRawData)
                                    throws IllegalRawDataException
        Parameters:
        headerRawData - the raw data of the DNS header including this domain name.
        Returns:
        decompressed name.
        Throws:
        IllegalRawDataException - if an error occurred during decompression or circular reference is detected.
      • getBuilder

        public DnsDomainName.Builder getBuilder()
        Returns:
        a new Builder object populated with this object's fields.
      • getRawData

        public byte[] getRawData()
        Returns:
        the raw data.
      • length

        public int length()
        Returns:
        length
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toString

        public java.lang.String toString​(byte[] headerRawData)
        Convert this object to string representation including all fields info and decompressed domain name.
        Parameters:
        headerRawData - the raw data of the DNS header including this domain name.
        Returns:
        string representation of this object.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object