Thread SNMP query mittels Perl: SNMP query mittels Perl (7 answers)
Opened by tomi at 2005-11-21 16:05

svenXY
 2005-11-22 13:07
#36943 #36943
User since
2005-09-15
33 Artikel
BenutzerIn
[default_avatar]
OK, hab's mit Net::SNMP auf ner anderen Kiste probiert.

Erst der snmpwalk:
Code: (dl )
1
2
3
4
$ snmpwalk -v 2c -c community host 1.3.6.1.4.1.9.2.2.1.1.28
SNMPv2-SMI::enterprises.9.2.2.1.1.28.1 = ""
SNMPv2-SMI::enterprises.9.2.2.1.1.28.2 = ""
SNMPv2-SMI::enterprises.9.2.2.1.1.28.3 = ""

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):
Code: (dl )
1
2
$ perl ~/snmp_test2.pl host community
oid '1.3.6.1.4.1.9.2.2.1.1.28.1' -> ''

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

View full thread SNMP query mittels Perl: SNMP query mittels Perl