Provided by: libnet-frame-perl_1.21-2_all
NAME
Net::Frame::Layer::IPv4 - Internet Protocol v4 layer object
SYNOPSIS
use Net::Frame::Layer::IPv4 qw(:consts); # Build a layer my $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 layer my $layer = Net::Frame::Layer::IPv4->new(raw => $raw); print $layer->print."\n"; print 'PAYLOAD: '.unpack('H*', $layer->payload)."\n" if $layer->payload;
DESCRIPTION
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 length attribute varies from system to system, a subroutine inside this module detects which byte order to use. Sometimes, like when you build Net::Frame::Layer::8021Q layers, 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.
SEE ALSO
Net::Frame::Layer
AUTHOR
Patrice <GomoR> Auffret
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.