NAME
Net::Packet::ARP - Address Resolution Protocol layer 3 object
SYNOPSIS
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;
DESCRIPTION
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.
ATTRIBUTES
- 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.
METHODS
- 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.
CONSTANTS
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.
AUTHOR
Patrice <GomoR> Auffret
COPYRIGHT AND LICENSE
Copyright (c) 2004-2015, Patrice <GomoR> Auffret
You may distribute this module under the terms of the Artistic license. See LICENSE.Artistic file in the source distribution archive.