Bonjour,

Debutant en Perl, je dois effectuer des requetes SNMP vers un switch pour recuperer certaines valeurs via la MIB Cisco. Cette partie se passe assez bien puisque la connection a l'air de fonctionner, mais je ne parvient pas a afficher les informations lu (par exemple la bande passante de l'interface, ou la temperature etc...). Si je regarde le contenu de la variable "result", elle contient 0 ou 1, ce qui correspond au retour de la commande a ce que j'ai pu comprendre.

Comment faire pour connaitre la valeur de la donnee que je check ?

voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#! /usr/local/bin/perl
 
use strict;
use warnings;
use Net::SNMP;
 
my $OID = '1.3.6.1.2.1.2.2.1.5';
 
my ($session, $error) = Net::SNMP->session(
	-version		=> 'snmpv2c',
	-nonblocking	=> 1,
	-hostname		=> shift || '192.168.90.100',
	-community	=> shift || 'public',
	-port			=> shift || 161
);
 
my $result = $session->get_request(-varbindlist => [$OID],);
 
if(!defined $result){
	printf "ERROR: %s.\n", $session->error();
	$session->close();
	exit 1;
}
 
$session->close();
exit 0;
Ici un :
me renvoit la valeur 0 ou 1

et si je tente un :
j'obtient l'erreur suivante :
Can't use string ("1") as a HASH ref while "strict refs" in use at /root/workspace/Plugin Nagios/test_SNMP2.pl line 24.
la ligne 24 etant la ligne correspondant au Quelqu'un peut-il m'aider ?

En vous remerciant,
Michon