Rechercher une page de manuel
Net::Packet::IPv4.3pm
Langue: en
Version: 2006-12-16 (mandriva - 01/05/08)
Section: 3 (Bibliothèques de fonctions)
Sommaire
NAME
Net::Packet::IPv4 - Internet Protocol v4 layer 3 objectSYNOPSIS
use Net::Packet::Consts qw(:ipv4); require Net::Packet::IPv4; # Build a layer my $ip = Net::Packet::IPv4->new( flags => NP_IPv4_DONT_FRAGMENT, dst => "192.168.0.1", ); $layer->pack; print 'RAW: '.unpack('H*', $layer->raw)."\n"; # Read a raw layer my $layer = Net::Packet::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::Packet::Layer and Net::Packet::Layer3 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::Packet::VLAN 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).
METHODS
- new
- Object constructor. You can pass attributes that will overwrite default ones. Default values:
version: 4
tos: 0
id: getRandom16bitsInt()
length: NP_IPv4_HDR_LEN
hlen: 5
flags: 0
offset: 0
ttl: 128
protocol: NP_IPv4_PROTOCOL_TCP
checksum: 0
src: $Env->ip
dst: ``127.0.0.1''
options: ""
noFixLen: 0
- pack
- Packs all attributes into a raw format, in order to inject to network. Returns 1
on success, undef otherwise. - unpack
- Unpacks raw data from network and stores attributes into the object. Returns 1 on success, undef otherwise.
- getHeaderLength
- Returns the header length in bytes, not including IP options.
- getPayloadLength
- Returns the length in bytes of encapsulated layers (that is, layer 4 + layer 7).
- getOptionsLength
- Returns the length in bytes of IP options.
- haveFlagDf
- haveFlagMf
- haveFlagRf
- Returns 1 if the specified flag is set in flags attribute, 0 otherwise.
- isProtocolTcp
- isProtocolUdp
- isProtocolIpv6
- isProtocolOspf
- isProtocolIgmpv4
- isProtocolIcmpv4
- Returns 1 if the specified protocol is used at layer 4, 0 otherwise.
CONSTANTS
Load them: use Net::Packet::Consts qw(:ipv4);- NP_IPv4_PROTOCOL_TCP
- NP_IPv4_PROTOCOL_UDP
- NP_IPv4_PROTOCOL_ICMPv4
- NP_IPv4_PROTOCOL_IPv6
- NP_IPv4_PROTOCOL_OSPF
- NP_IPv4_PROTOCOL_IGMPv4
- Various protocol type constants.
- NP_IPv4_MORE_FRAGMENT
- NP_IPv4_DONT_FRAGMENT
- NP_IPv4_RESERVED_FRAGMENT
- Various possible flags.
AUTHOR
Patrice <GomoR> AuffretCOPYRIGHT AND LICENSE
Copyright (c) 2004-2006, Patrice <GomoR> AuffretYou may distribute this module under the terms of the Artistic license. See LICENSE.Artistic file in the source distribution archive.
RELATED MODULES
NetPacket, Net::RawIP, Net::RawSockContenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre