Advertisement
Guest User

Untitled

a guest
Dec 17th, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.57 KB | None | 0 0
  1. sub getMacForIP {
  2.    my $ip = shift;
  3.    my $if = shift;
  4.    my $struc = "SCCCCCCCCCCCCCCSCCCCCCCCCCCCCCiSCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC";
  5.  
  6.    my @x = split("", 0 x 62);
  7.    $x[0] = $main::AF_INET;
  8.    my $i = 0;
  9.    foreach my $c (split(//, $if)) {
  10.       $x[46+$i++] = ord($c)
  11.    }
  12.    $i = 0;
  13.    foreach my $c (split(/\./, $ip)) {
  14.       $x[3+$i++] = $c
  15.    }
  16.    my $arpreq = pack($struc, @x);
  17.    return 0 unless (ioctl(SOCKET,$main::SIOCGARP,$arpreq));
  18.    return join("", map { length($_) > 1 ? $_ : "0".$_ } map { sprintf("%X", $_) } ((unpack($struc, $arpreq))[16..21]));
  19. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement