in reply to Re: Where is the bug in this Net::SNMP code?
in thread Where is the bug in this Net::SNMP code?
There was other question why there are no data in .1.3.6.1.2.1.25.3.5.1.2, $name3 - it is empty.#!/usr/bin/perl #use strict; use Net::SNMP; my @ips=(11); foreach my $k (@ips) { my $hostname = "10.0.0.$k"; my $password = "public"; my $sysUpTime = '.1.3.6.1.2.1.1.3'; my $sysName = '.1.3.6.1.2.1.1.5'; my $hrPrinterStatus = '.1.3.6.1.2.1.25.3.5.1.1'; my $hrPrinterDetectedErrorState = '.1.3.6.1.2.1.25.3.5.1.2'; my $prtCoverStatus = '.1.3.6.1.2.1.43.6.1.1.3'; my $status; my ( $session, $error ) = Net::SNMP->session ( Hostname => $hostname, Community => $password ); die "session error: $error" unless ( $session ); $result = $session->get_next_request ( varbindlist => [$sysName.$1] ); + die "request error: ".$session->error unless ( defined $result ); ( $sysName, $name1 ) = each %$result; unless ( $sysName =~ /$sysName(. +*)/ ) { last; } $result = $session->get_next_request ( varbindlist => [$prtCoverStatus +.$1] ); die "request error: ".$session->error unless ( defined $resul +t ); ( $prtCoverStatus, $name2 ) = each %$result; unless ( $prtCoverStatus +=~ /$prtCoverStatus(.*)/ ) { last; } $result = $session->get_next_request ( varbindlist => [$hrPrinterDetec +tedErrorState.$1] ); die "request error: ".$session->error unless ( d +efined $result ); ( $hrPrinterDetectedErrorState, $name3 ) = each %$result; unless ( $hr +PrinterDetectedErrorState =~ /$hrPrinterDetectedErrorState(.*)/ ) { l +ast; } $result = $session->get_next_request ( varbindlist => [$hrPrinterStatu +s.$1] ); die "request error: ".$session->error unless ( defined $resu +lt ); ( $hrPrinterStatus, $name4 ) = each %$result; unless ( $hrPrinterStatu +s =~ /$hrPrinterStatus(.*)/ ) { last; } $session->close; print "$name1\t$name2\t$name3\t$name4\n"; } exit 0;
|
|---|