Thread SNMP query mittels Perl: SNMP query mittels Perl
(7 answers)
Opened by tomi at 2005-11-21 16:05
OK, hab's mit Net::SNMP auf ner anderen Kiste probiert.
Erst der snmpwalk: Code: (dl
)
1 $ snmpwalk -v 2c -c community host 1.3.6.1.4.1.9.2.2.1.1.28 Die eigentlichen OIDs sind also ...28.1, ...28.2 und ...28.3 Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #! /usr/local/bin/perl use strict; use lib '/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto'; use Net::SNMP; my ($session, $error) = Net::SNMP->session( -version => 'snmpv2c', -hostname => shift || 'localhost', -community => shift || 'public', -port => shift || 161 ); if (!defined($session)) { printf("ERROR: %s.\n", $error); exit 1; } my $oid = '1.3.6.1.4.1.9.2.2.1.1.28.1'; my $result = $session->get_request( -varbindlist => [ $oid ] ); if (!defined($result)) { printf("ERROR: %s.\n", $session->error); $session->close; exit 1; } printf("oid '%s' -> '%s'\n", $oid, $result->{$oid} ); $session->close; exit 0; ergibt dann auch folgerichtig (bei mir): und wenn ich mir nochmal Deinen OP anschaue, dann sehe ich den Fehler: Unknown Object Identifier (Sub-id not found: (top) -> local), der sich m.E eher auf Deine Variablendefinition ["local.2.1.1.28"] bezieht. Wie auch immer, wahrscheinlich brauchst Du hier auch ein walk und kein get. Vielleicht hilft das hier: http://search.cpan.org/~dtown/Net-SNMP-5.2.0/lib/Net/SNMP.pm#3._Non-blocking_SNMPv2c_get-bulk-request_for_ifTable Gruss, svenXY |