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
    Author:
    Kaito Yamada
    See Also:
    RFC 1035, Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  DnsDomainName.Builder  
    • Method Summary

      Modifier and Type Method Description
      java.lang.String decompress​(byte[] headerRawData)  
      boolean equals​(java.lang.Object obj)  
      DnsDomainName.Builder getBuilder()  
      java.util.List<java.lang.String> getLabels()  
      java.lang.String getName()  
      java.lang.Short getPointer()  
      java.lang.Integer getPointerAsInt()  
      byte[] getRawData()  
      int hashCode()  
      int length()  
      static DnsDomainName newInstance​(byte[] rawData, int offset, int length)
      A static factory method.
      java.lang.String toString()  
      java.lang.String toString​(byte[] headerRawData)
      Convert this object to string representation including all fields info and decompressed domain name.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • ROOT_DOMAIN

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

      • 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