
ARP - Perl extension for creating ARP packets

use Net::ARP;
Net::ARP::send_packet('lo', # Device
'127.0.0.1', # Source IP
'127.0.0.1', # Destination IP
'aa:bb:cc:aa:bb:cc', # Source MAC
'aa:bb:cc:aa:bb:cc', # Destinaton MAC
'reply'); # ARP operation
$mac = Net::ARP::get_mac("eth0");
print "$mac\n";
$mac = Net::ARP::arp_lookup($dev,"192.168.1.1");
print "192.168.1.1 has got mac $mac\n";
Version 1.0 will break with the API of PRE-1.0 versions, because the return value of arp_lookup() and get_mac() will no longer be passed as parameter, but returned! I hope this decision is ok as long as we get a cleaner and more perlish API.
This module can be used to create and send ARP packets and to get the mac address of an ethernet interface or ip address.
Net::ARP::send_packet('lo', # Device
'127.0.0.1', # Source IP
'127.0.0.1', # Destination IP
'aa:bb:cc:aa:bb:cc', # Source MAC
'aa:bb:cc:aa:bb:cc', # Destinaton MAC
'reply'); # ARP operation
I think this is self documentating.
ARP operation can be one of the following values:
request, reply, revrequest, revreply, invrequest, invreply.
The default ARP operation is reply.
$mac = Net::ARP::get_mac("eth0");
This gets the MAC address of the eth0 interface and stores
it in the variable $mac. The return value is "unknown" if
the mac cannot be looked up.
$mac = Net::ARP::arp_lookup($dev,"192.168.1.1"); This looks up the MAC address for the ip address 192.168.1.1 and stores it in the variable $mac. The return value is "unknown" if the mac cannot be looked up.

man -a arp

Bastian Ballmann [ Balle@chaostal.de ] http://www.datenterrorist.de

Copyright (C) 2004-2007 by Bastian Ballmann
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.1 or, at your option, any later version of Perl 5 you may have available.