Net::Frame::Layer::IPv43pm
Internet protocol v4 layer object
Usage
use Net::Frame::Layer::IPv4 qw(:consts);# Build a layermy $layer = Net::Frame::Layer::IPv4->new(version => 4,tos => 0,id => getRandom16bitsInt(),length => NF_IPv4_HDR_LEN,hlen => 5,flags => 0,offset => 0,ttl => 128,protocol => NF_IPv4_PROTOCOL_TCP,checksum => 0,src => '127.0.0.1',dst => '127.0.0.1',options => '',noFixLen => 0,);$layer->pack;print 'RAW: '.$layer->dump."\n";# Read a raw layermy $layer = Net::Frame::Layer::IPv4->new(raw => $raw);print $layer->print."\n";print 'PAYLOAD: '.unpack('H*', $layer->payload)."\n"if $layer->payload;
Overview
This modules implements the encoding and decoding of the IPv4 layer.
RFC: ftp://ftp.rfc-editor.org/in-notes/rfc791.txt
See also Net::Frame::Layer for other attributes and methods.
Attributes
id-
IP ID of the datagram.
ttl-
Time to live.
src
dst-
Source and destination IP addresses.
protocol-
Of which type the layer 4 is.
checksum-
IP checksum.
flags-
IP Flags.
offset-
IP fragment offset.
version-
IP version, here it is 4.
tos-
Type of service flag.
length-
Total length in bytes of the packet, including IP headers (that is, layer 3 + layer 4 + layer 7).
hlen-
Header length in number of words, including IP options.
options-
IP options, as a hexadecimal string.
noFixLen-
Since the byte ordering of
lengthattribute varies from system to system, a subroutine inside this module detects which byte order to use. Sometimes, like when you buildNet::Frame::Layer::8021Qlayers, you may have the need to avoid this. So set it to 1 in order to avoid fixing. Default is 0 (that is to fix).
The following are inherited attributes. See Net::Frame::Layer for more information.
raw
payload
nextLayer
Methods
new
new(hash)-
Object constructor. You can pass attributes that will overwrite default ones. See SYNOPSIS for default values.
getHeaderLength-
Returns the header length in bytes, not including IP options.
getOptionsLength-
Returns the length in bytes of IP options. 0 if none.
computeLengths({ payloadLength => VALUE })-
In order to compute lengths attributes within IPv4 header, you need to pass via a hashref the number of bytes contained in IPv4 payload (that is, the sum of all layers after the IPv4 one).
computeChecksums-
Computes the IPv4 checksum.
The following are inherited methods. Some of them may be overridden in this layer, and some others may not be meaningful in this layer. See Net::Frame::Layer for more information.
layer
computeLengths
computeChecksums
pack
unpack
encapsulate
getLength
getPayloadLength
print
dump
Constants
Load them: use Net::Frame::Layer::IPv4 qw(:consts);
NF_IPv4_PROTOCOL_ICMPv4
NF_IPv4_PROTOCOL_IGMP
NF_IPv4_PROTOCOL_IPIP
NF_IPv4_PROTOCOL_TCP
NF_IPv4_PROTOCOL_EGP
NF_IPv4_PROTOCOL_IGRP
NF_IPv4_PROTOCOL_CHAOS
NF_IPv4_PROTOCOL_UDP
NF_IPv4_PROTOCOL_IDP
NF_IPv4_PROTOCOL_DCCP
NF_IPv4_PROTOCOL_IPv6
NF_IPv4_PROTOCOL_IPv6ROUTING
NF_IPv4_PROTOCOL_IPv6FRAGMENT
NF_IPv4_PROTOCOL_IDRP
NF_IPv4_PROTOCOL_RSVP
NF_IPv4_PROTOCOL_GRE
NF_IPv4_PROTOCOL_ESP
NF_IPv4_PROTOCOL_AH
NF_IPv4_PROTOCOL_ICMPv6
NF_IPv4_PROTOCOL_EIGRP
NF_IPv4_PROTOCOL_OSPF
NF_IPv4_PROTOCOL_ETHERIP
NF_IPv4_PROTOCOL_PIM
NF_IPv4_PROTOCOL_VRRP
NF_IPv4_PROTOCOL_STP
NF_IPv4_PROTOCOL_SCTP
NF_IPv4_PROTOCOL_UDPLITE-
Various protocol type constants.
NF_IPv4_MORE_FRAGMENT
NF_IPv4_DONT_FRAGMENT
NF_IPv4_RESERVED_FRAGMENT-
Various possible flags.
Copyright and license
Copyright (c) 2006-2019, Patrice <GomoR> Auffret
You may distribute this module under the terms of the Artistic license. See LICENSE.Artistic file in the source distribution archive.
Releases
7 releases since Debian 7 (Wheezy); the text changed 5 times.