#!/usr/bin/perl
use strict;
use Net::SNMP qw(snmp_dispatcher oid_lex_sort);
my $host = '3c39t1-01';
my $raw;
my $key;
my $value;
my %macTable;
my $TpFdbAddress = '1.3.6.1.2.1.17.4.3.1.1';
my $result;
my ($session, $error) = Net::SNMP->session(
-hostname => $ARGV[0] || $host,
-community => $ARGV[1] || 'public',
-port => $ARGV[2] || 161
);
if (!defined($session))
{
printf("ERROR: %s\n", $error);
exit 1;
}
if (defined($result = $session->get_table(-baseoid => $TpFdbAddress)))
{
foreach (oid_lex_sort(keys(%{$result})))
{
$raw = $_;
$value = $result->{$_};
$raw =~ s/$TpFdbAddress.//;
$macTable{$raw} = $value;
}
}
else
{
printf("ERROR: %s\n\n", $session->error());
}
$session->close;
foreach $key (sort(keys(%macTable)))
{
print "$key -> $macTable{$key}\n";
}
exit 0;
####
[snip]
0.13.162.0.144.140 -> 0x000da200908c
0.13.86.118.96.80 -> ^@^MVv`P
0.13.86.171.103.33 -> 0x000d56ab6721
0.13.86.178.142.133 -> 0x000d56b28e85
0.13.86.225.88.22 -> 0x000d56e15816
0.13.86.32.12.60 -> ^@^MV ^L<
0.14.12.99.128.216 -> 0x000e0c6380d8
[snip]
##
##
$ snmpget -v 1 -c public 3c39t1-01 1.3.6.1.2.1.17.4.3.1.1.0.13.86.32.12.60
SNMPv2-SMI::mib-2.17.4.3.1.1.0.13.86.32.12.60 = Hex-STRING: 00 0D 56 20 0C 3C