Net::Packet::ARP - Address Resolution Protocol layer 3 object
use Net::Packet::Consts qw(:arp);
require Net::Packet::ARP;
# Build a layer
my $layer = Net::Packet::ARP->new(
dstIp => "192.168.0.1",
);
$layer->pack;
print 'RAW: '.unpack('H*', $layer->raw)."\n";
# Read a raw layer
my $layer = Net::Packet::ARP->new(raw => $raw);
print $layer->print."\n";
print 'PAYLOAD: '.unpack('H*', $layer->payload)."\n"
if $layer->payload;
This modules implements the encoding and decoding of the ARP layer.
RFC: ftp://ftp.rfc-editor.org/in-notes/rfc826.txt
See also Net::Packet::Layer and Net::Packet::Layer3
for other attributes and methods.
- hType
- pType
- Hardware and protocol address types.
- hSize
- pSize
- Hardware and protocol address sizes in bytes.
- opCode
- The operation code number to perform.
- src
- dst
- Source and destination hardware addresses.
- srcIp
- dstIp
- Source and destination IP addresses.
- new
- Object constructor. You can pass attributes that will overwrite default
ones. Default values:
hType: NP_ARP_HTYPE_ETH
pType: NP_ARP_PTYPE_IPv4
hSize: NP_ARP_HSIZE_ETH
pSize: NP_ARP_PSIZE_IPv4
opCode: NP_ARP_OPCODE_REQUEST
src: $Env->mac
dst: NP_ARP_ADDR_BROADCAST
srcIp: $Env->ip
dstIp: 127.0.0.1
- 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.
- recv
- Will search for a matching replies in framesSorted or frames
from a Net::Packet::Dump object.
- isRequest
- isReply
- Returns 1 if the opCode attribute is of specified type.
Load them: use Net::Packet::Consts qw(:arp);
- NP_ARP_HTYPE_ETH
- NP_ARP_PTYPE_IPv4
- Hardware and protocol address types.
- NP_ARP_HSIZE_ETH
- NP_ARP_PSIZE_IPv4
- Hardware and protocol address sizes.
- NP_ARP_OPCODE_REQUEST
- NP_ARP_OPCODE_REPLY
- Operation code numbers.
- NP_ARP_ADDR_BROADCAST
- Broadcast address for src or dst attributes.
Copyright (c) 2004-2009, Patrice <GomoR> Auffret
You may distribute this module under the terms of the Artistic
license. See LICENSE.Artistic file in the source distribution archive.
NetPacket, Net::RawIP, Net::RawSock
Hey! The above document had some coding errors, which are explained
below:
- Around line 155:
- Non-ASCII character seen before =encoding in '# Build'. Assuming
CP1252