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