#! /usr/bin/perl require 5.6.1; # for Net::SNMP v4 use strict; # avoid D'oh! problems use warnings; # avoid D'oh! problems use Net::SNMP 4 qw(snmp_dispatcher oid_lex_sort); # must be >= version 4 use Tie::IxHash; # insertion-order retrieval my ($session, $error) = Net::SNMP->session( -hostname => 'catalyst', -community => 'public', ); unless (defined($session)) { print "Error: $error"; exit; } tie my %oid, "Tie::IxHash"; %oid = ( TpFdbAddress => '.1.3.6.1.2.1.17.4.3.1.1', TpFdbPort => '.1.3.6.1.2.1.17.4.3.1.2', bridgePortNum => '.1.3.6.1.2.1.17.1.4.1.1', switchPortNum => '.1.3.6.1.2.1.17.1.4.1.2', ifDescr => '.1.3.6.1.2.1.2.2.1.1', ifName => '.1.3.6.1.2.1.31.1.1.1.1', ); for my $value (keys %oid) { if (defined(my $response = $session -> get_table(-baseoid => $oid{$value}))) { print "\n == hash key == $oid{$value} ==\n"; for my $r(oid_lex_sort(keys(%{$response}))) { print($response -> {$r}, ",\n"); } } else { print "Error: ",($session -> error(), ",\n"); } } $session->close; exit;