Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
I call the function getSNMP this waysub getSNMP { my $OID_ifTable = '1.3.6.1.2.1.2.2'; my $OID_ifPhysAddress = '1.3.6.1.2.1.2.2.1.6'; my $host = shift; my ($session, $error) = Net::SNMP->session( -hostname => $host || 'localhost', -community =>'maectn', -nonblocking => 1, -translate => [-octetstring => 0], -version => 'snmpv2c', ); if (!defined $session) { printf "ERROR: %s.\n", $error; exit 1; } my %table; # Hash to store the results my $result = $session->get_bulk_request( -varbindlist => [ $OID_ifTable ], -callback => [ \&table_callback, \%table ], -maxrepetitions => 10, ); if (!defined $result) { printf "ERROR: %s\n", $session->error(); $session->close(); exit 1; } # Now initiate the SNMP message exchange. snmp_dispatcher(); $session->close(); # Print the results, specifically formatting ifPhysAddress. for my $oid (Net::SNMP::oid_lex_sort(keys %table)) { if (!oid_base_match($OID_ifPhysAddress, $oid)) { printf "%s = %s\n", $oid, $table{$oid}; } else { printf "%s = %s\n", $oid, unpack 'H*', $table{$oid}; } } } sub table_callback { my ($session, $table) = @_; my $OID_ifTable = '1.3.6.1.2.1.2.2'; my $list = $session->var_bind_list(); if (!defined $list) { printf "ERROR: %s\n", $session->error(); return; } my @names = $session->var_bind_names(); my $next = undef; while (@names) { $next = shift @names; if (!oid_base_match($OID_ifTable, $next)) { return; # Table is done. } $table->{$next} = $list->{$next}; } my $result = $session->get_bulk_request( -varbindlist => [ $next ], -maxrepetitions => 10, ); if (!defined $result) { printf "ERROR: %s.\n", $session->error(); } return; }
The problem is that when I call the function, the query do not work, when I insert print statements for debugging, it shows nothing. Can you Monks give me some pointers to put me in the right direction? Thank yougetSNMP($self->{ip});
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: get_bulk_request with Net::SNMP
by Anonymous Monk on Jul 15, 2015 at 12:43 UTC | |
by thanos1983 (Parson) on Jul 16, 2015 at 12:28 UTC | |
by Anonymous Monk on Jul 22, 2015 at 08:35 UTC |