#!/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;