Socket-Packet

 view release on metacpan or  search on metacpan

examples/arp.pl  view on Meta::CPAN

) or die "Cannot create a PF_PACKET socket - $!";

my $broadcast_addr = pack_sockaddr_ll(
   $sock->protocol, $sock->ifindex, $sock->hatype, 0, "\xff\xff\xff\xff\xff\xff"
);

my $mac_addr = ( unpack_sockaddr_ll $sock->sockname )[4];

my $arp_request = pack(
   "n n C C n A6 A4 A6 A4",
   1, 0x800, 6, 4, 1, $mac_addr, "\0\0\0\0", "\0\0\0\0\0\0", pack("CCCC", split m/\./, $IP),
);

$sock->send( $arp_request, 0, $broadcast_addr )
   or die "Cannot send - $!";

$SIG{ALRM} = sub {
   print "Timed out; no response\n";
   exit 0;
};



( run in 2.316 seconds using v1.01-cache-2.11-cpan-71847e10f99 )