rendered paste body#!/usr/bin/env perl
#use strict;
use Net::SNMP;
use Socket;
my $switch = shift(@ARGV);
my $rocomm_switch = shift(@ARGV);;
my $debug = 0;
##########
# Get the IP/MAC map from the device
##########
my ($session, $error) = Net::SNMP->session(
-hostname => $switch,
-version => 'snmpv1',
-community => $rocomm_switch
);
if (!defined($session))
{
print "ERROR:\n\n";
print "$error\n";
exit 1;
}
my $result = $session->get_table(
-baseoid => '.1.3.6.1.2.1.4.22.1.2'
);
foreach (keys %$result)
{
# Capture IP Address in SNMP OID: (.*) = $2
/(\.1\.3\.6\.1\.2\.1\.4\.22\.1\.2\.\d+\.)(.*)$/;
print "$_" . " %$result->{$_} \n" if($debug);
my $mac = %$result->{$_};
my $ip = $2;
if(true){
print "OK,";
print "$ip,"; # IP Address
# $mac =~ s/^0x//;
# $mac =~ s/([a-zA-Z0-9]{2})(?!$)/\1-/g;
print "$mac" . "\n"; # MAC Address
}else{
print "ERROR,";
print "$ip,"; # IP Address
print "Bad MAC Returned." . "\n";
}
}
$session->close();
##########