- java.lang.Object
-
- org.pcap4j.packet.AbstractPacket.AbstractHeader
-
- org.pcap4j.packet.IpV4Packet.IpV4Header
-
- All Implemented Interfaces:
java.io.Serializable,IpPacket.IpHeader,Packet.Header
- Enclosing class:
- IpV4Packet
public static final class IpV4Packet.IpV4Header extends AbstractPacket.AbstractHeader implements IpPacket.IpHeader
- Since:
- pcap4j 0.9.1
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private booleandontFragmentFlagprivate static intDST_ADDR_OFFSETprivate static intDST_ADDR_SIZEprivate java.net.Inet4AddressdstAddrprivate static intFLAGS_AND_FRAGMENT_OFFSET_OFFSETprivate static intFLAGS_AND_FRAGMENT_OFFSET_SIZEprivate shortfragmentOffsetprivate static intHEADER_CHECKSUM_OFFSETprivate static intHEADER_CHECKSUM_SIZEprivate shortheaderChecksumprivate shortidentificationprivate static intIDENTIFICATION_OFFSETprivate static intIDENTIFICATION_SIZEprivate byteihlprivate static org.slf4j.Loggerloggerprivate static intMIN_IPV4_HEADER_SIZEprivate booleanmoreFragmentFlagprivate java.util.List<IpV4Packet.IpV4Option>optionsprivate static intOPTIONS_OFFSETprivate byte[]paddingprivate IpNumberprotocolprivate static intPROTOCOL_OFFSETprivate static intPROTOCOL_SIZEprivate booleanreservedFlagprivate static longserialVersionUIDprivate static intSRC_ADDR_OFFSETprivate static intSRC_ADDR_SIZEprivate java.net.Inet4AddresssrcAddrprivate IpV4Packet.IpV4Tostosprivate static intTOS_OFFSETprivate static intTOS_SIZEprivate static intTOTAL_LENGTH_OFFSETprivate static intTOTAL_LENGTH_SIZEprivate shorttotalLengthprivate bytettlprivate static intTTL_OFFSETprivate static intTTL_SIZEprivate IpVersionversionprivate static intVERSION_AND_IHL_OFFSETprivate static intVERSION_AND_IHL_SIZE
-
Constructor Summary
Constructors Modifier Constructor Description privateIpV4Header(byte[] rawData, int offset, int length)privateIpV4Header(IpV4Packet.Builder builder, Packet payload)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private byte[]buildRawData(boolean zeroInsteadOfChecksum)protected java.lang.StringbuildString()This method builds the valuetoString()will return.protected intcalcHashCode()This method builds the valuehashCode()will return using the byte arraygetRawData()returns.private shortcalcHeaderChecksum(boolean zeroInsteadOfChecksum)protected intcalcLength()This method calculates the valuelength()will return by adding up the lengths of byte arrays in the listgetRawFields()returns.booleanequals(java.lang.Object obj)Indicates whether some other object is "equal to" this one using return values ofgetRawData().booleangetDontFragmentFlag()java.net.Inet4AddressgetDstAddr()shortgetFragmentOffset()shortgetHeaderChecksum()shortgetIdentification()intgetIdentificationAsInt()bytegetIhl()intgetIhlAsInt()booleangetMoreFragmentFlag()java.util.List<IpV4Packet.IpV4Option>getOptions()byte[]getPadding()IpNumbergetProtocol()protected java.util.List<byte[]>getRawFields()Returns a list of byte arrays which represents this header's fields.private java.util.List<byte[]>getRawFields(boolean zeroInsteadOfChecksum)booleangetReservedFlag()java.net.Inet4AddressgetSrcAddr()IpV4Packet.IpV4TosgetTos()shortgetTotalLength()intgetTotalLengthAsInt()bytegetTtl()intgetTtlAsInt()IpVersiongetVersion()booleanhasValidChecksum(boolean acceptZero)private intmeasureLengthWithoutPadding()-
Methods inherited from class org.pcap4j.packet.AbstractPacket.AbstractHeader
buildHexString, buildRawData, getRawData, hashCode, length, toHexString, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.pcap4j.packet.Packet.Header
getRawData, length
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
logger
private static final org.slf4j.Logger logger
-
VERSION_AND_IHL_OFFSET
private static final int VERSION_AND_IHL_OFFSET
- See Also:
- Constant Field Values
-
VERSION_AND_IHL_SIZE
private static final int VERSION_AND_IHL_SIZE
- See Also:
- Constant Field Values
-
TOS_OFFSET
private static final int TOS_OFFSET
- See Also:
- Constant Field Values
-
TOS_SIZE
private static final int TOS_SIZE
- See Also:
- Constant Field Values
-
TOTAL_LENGTH_OFFSET
private static final int TOTAL_LENGTH_OFFSET
- See Also:
- Constant Field Values
-
TOTAL_LENGTH_SIZE
private static final int TOTAL_LENGTH_SIZE
- See Also:
- Constant Field Values
-
IDENTIFICATION_OFFSET
private static final int IDENTIFICATION_OFFSET
- See Also:
- Constant Field Values
-
IDENTIFICATION_SIZE
private static final int IDENTIFICATION_SIZE
- See Also:
- Constant Field Values
-
FLAGS_AND_FRAGMENT_OFFSET_OFFSET
private static final int FLAGS_AND_FRAGMENT_OFFSET_OFFSET
- See Also:
- Constant Field Values
-
FLAGS_AND_FRAGMENT_OFFSET_SIZE
private static final int FLAGS_AND_FRAGMENT_OFFSET_SIZE
- See Also:
- Constant Field Values
-
TTL_OFFSET
private static final int TTL_OFFSET
- See Also:
- Constant Field Values
-
TTL_SIZE
private static final int TTL_SIZE
- See Also:
- Constant Field Values
-
PROTOCOL_OFFSET
private static final int PROTOCOL_OFFSET
- See Also:
- Constant Field Values
-
PROTOCOL_SIZE
private static final int PROTOCOL_SIZE
- See Also:
- Constant Field Values
-
HEADER_CHECKSUM_OFFSET
private static final int HEADER_CHECKSUM_OFFSET
- See Also:
- Constant Field Values
-
HEADER_CHECKSUM_SIZE
private static final int HEADER_CHECKSUM_SIZE
- See Also:
- Constant Field Values
-
SRC_ADDR_OFFSET
private static final int SRC_ADDR_OFFSET
- See Also:
- Constant Field Values
-
SRC_ADDR_SIZE
private static final int SRC_ADDR_SIZE
- See Also:
- Constant Field Values
-
DST_ADDR_OFFSET
private static final int DST_ADDR_OFFSET
- See Also:
- Constant Field Values
-
DST_ADDR_SIZE
private static final int DST_ADDR_SIZE
- See Also:
- Constant Field Values
-
OPTIONS_OFFSET
private static final int OPTIONS_OFFSET
- See Also:
- Constant Field Values
-
MIN_IPV4_HEADER_SIZE
private static final int MIN_IPV4_HEADER_SIZE
- See Also:
- Constant Field Values
-
version
private final IpVersion version
-
ihl
private final byte ihl
-
tos
private final IpV4Packet.IpV4Tos tos
-
totalLength
private final short totalLength
-
identification
private final short identification
-
reservedFlag
private final boolean reservedFlag
-
dontFragmentFlag
private final boolean dontFragmentFlag
-
moreFragmentFlag
private final boolean moreFragmentFlag
-
fragmentOffset
private final short fragmentOffset
-
ttl
private final byte ttl
-
protocol
private final IpNumber protocol
-
headerChecksum
private final short headerChecksum
-
srcAddr
private final java.net.Inet4Address srcAddr
-
dstAddr
private final java.net.Inet4Address dstAddr
-
options
private final java.util.List<IpV4Packet.IpV4Option> options
-
padding
private final byte[] padding
-
-
Constructor Detail
-
IpV4Header
private IpV4Header(byte[] rawData, int offset, int length) throws IllegalRawDataException- Throws:
IllegalRawDataException
-
IpV4Header
private IpV4Header(IpV4Packet.Builder builder, Packet payload)
-
-
Method Detail
-
calcHeaderChecksum
private short calcHeaderChecksum(boolean zeroInsteadOfChecksum)
-
getVersion
public IpVersion getVersion()
- Specified by:
getVersionin interfaceIpPacket.IpHeader- Returns:
- version
-
getIhl
public byte getIhl()
- Returns:
- ihl
-
getIhlAsInt
public int getIhlAsInt()
- Returns:
- ihl
-
getTos
public IpV4Packet.IpV4Tos getTos()
- Returns:
- tos
-
getTotalLength
public short getTotalLength()
- Returns:
- totalLength
-
getTotalLengthAsInt
public int getTotalLengthAsInt()
- Returns:
- totalLength
-
getIdentification
public short getIdentification()
- Returns:
- identification
-
getIdentificationAsInt
public int getIdentificationAsInt()
- Returns:
- identification
-
getReservedFlag
public boolean getReservedFlag()
- Returns:
- reservedFlag
-
getDontFragmentFlag
public boolean getDontFragmentFlag()
- Returns:
- dontFragmentFlag
-
getMoreFragmentFlag
public boolean getMoreFragmentFlag()
- Returns:
- moreFragmentFlag
-
getFragmentOffset
public short getFragmentOffset()
- Returns:
- fragmentOffset
-
getTtl
public byte getTtl()
- Returns:
- ttl
-
getTtlAsInt
public int getTtlAsInt()
- Returns:
- ttl
-
getProtocol
public IpNumber getProtocol()
- Specified by:
getProtocolin interfaceIpPacket.IpHeader- Returns:
- an IpNumber object which indicates the protocol of the following header.
-
getHeaderChecksum
public short getHeaderChecksum()
- Returns:
- headerChecksum
-
getSrcAddr
public java.net.Inet4Address getSrcAddr()
- Specified by:
getSrcAddrin interfaceIpPacket.IpHeader- Returns:
- srcAddr
-
getDstAddr
public java.net.Inet4Address getDstAddr()
- Specified by:
getDstAddrin interfaceIpPacket.IpHeader- Returns:
- dstAddr
-
getOptions
public java.util.List<IpV4Packet.IpV4Option> getOptions()
- Returns:
- options
-
getPadding
public byte[] getPadding()
- Returns:
- padding
-
hasValidChecksum
public boolean hasValidChecksum(boolean acceptZero)
- Parameters:
acceptZero- acceptZero- Returns:
- true if the packet represented by this object has a valid checksum; false otherwise.
-
getRawFields
protected java.util.List<byte[]> getRawFields()
Description copied from class:AbstractPacket.AbstractHeaderReturns a list of byte arrays which represents this header's fields. This method is called bycalcLength()andbuildRawData().- Specified by:
getRawFieldsin classAbstractPacket.AbstractHeader- Returns:
- a list of byte arrays which represents this header's fields
-
getRawFields
private java.util.List<byte[]> getRawFields(boolean zeroInsteadOfChecksum)
-
buildRawData
private byte[] buildRawData(boolean zeroInsteadOfChecksum)
-
measureLengthWithoutPadding
private int measureLengthWithoutPadding()
-
calcLength
protected int calcLength()
Description copied from class:AbstractPacket.AbstractHeaderThis method calculates the valuelength()will return by adding up the lengths of byte arrays in the listgetRawFields()returns.- Overrides:
calcLengthin classAbstractPacket.AbstractHeader- Returns:
- a calculated length
-
buildString
protected java.lang.String buildString()
Description copied from class:AbstractPacket.AbstractHeaderThis method builds the valuetoString()will return.- Overrides:
buildStringin classAbstractPacket.AbstractHeader- Returns:
- a string representation of this object
-
equals
public boolean equals(java.lang.Object obj)
Description copied from class:AbstractPacket.AbstractHeaderIndicates whether some other object is "equal to" this one using return values ofgetRawData(). This method should be overridden so that it does more strict comparisons more efficiently.- Overrides:
equalsin classAbstractPacket.AbstractHeader
-
calcHashCode
protected int calcHashCode()
Description copied from class:AbstractPacket.AbstractHeaderThis method builds the valuehashCode()will return using the byte arraygetRawData()returns. This method may be better to be overridden for performance reason.- Overrides:
calcHashCodein classAbstractPacket.AbstractHeader- Returns:
- a calculated hash code value for the object
-
-