table of contents
Net::Frame::Layer::IPv4(3pm) | User Contributed Perl Documentation | Net::Frame::Layer::IPv4(3pm) |
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.
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.
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.
2022-12-04 | perl v5.36.0 |