#!/usr/bin/perl -w use strict; use NET::SNMP; my $hostname = '10.10.10.10'; my $password = "public"; my $dot1dTpFdbAddress = ".1.3.6.1.2.1.17.4.3.1.1"; my $dot1dTpFdbPort = ".1.3.6.1.2.1.17.4.3.1.2"; my $dot1dTpFdbStatus = ".1.3.6.1.2.1.17.4.3.1.3"; my $dot1dBasePortIfIndex = ".1.3.6.1.2.1.17.1.4.1.2"; my $ifDescr = ".1.3.6.1.2.1.2.2.1.2"; my ($session, $error) = Net::SNMP->session ( - hostname => shift || '10.0.0.230', - community => shift || 'public', - port => shift || 161, - version => shift || 1, ); if (defined(my $result = $session->get_table(-baseoid => $dot1dTpFdbPort))) { foreach (keys(%{$result})) { my $ifnum = $session->get_request("$dot1dBasePortIfIndex\.".$result->{$_}); my $ifnum2 = $session->get_request("$ifDescr\.".$ifnum->{"$dot1dBasePortIfIndex\.".$result->{$_}}); print $ifnum2->{"$ifDescr\.".$ifnum->{"$dot1dBasePortIfIndex\.".$result->{$_}}}; print " - "; print $ifnum->{"$dot1dBasePortIfIndex\.".$result->{$_}}; print " - "; print "$result->{$_}\n"; } } else { printf("ERROR: %s\n\n", $session->error()); } $session->close;