Bonjour,
Je repost toujours en rapport avec un script perl.
J'essaie d'obtenir deux valeurs d'OID que je dois mettre dans deux variables distinctes et tout cela dans le même script.
Voici pour le moment, le scrip qui me permet de récupérer la valeur d'un OID.
Je sais qu'il n'y a pas les formes, mais pour le moment je recherche simplement le résultat
Et j'ai voulu retravailler le script afin qu'il puisse me fournir les valeurs des deux OIDs mais je pour l'instant je n'y arrive pas.
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/bin/perl -w use strict; use Net::SNMP; use Getopt::Long; my $valeur; my $OID = ".1.3.6.1.4.1.13576.10.1.100.1.1.3.206"; my $OID1 = ".1.3.6.1.4.1.13576.10.1.100.1.1.3.207"; my $host = "X.X.X.X"; my $community = "snmpget"; (my $session, my $error) = Net::SNMP->session( Hostname => $host, Community => $community); die "session error: $error" unless ($session); my $result = $session->get_request($OID,$OID1); die "request error: ".$session->error unless (defined $result); $session->close; foreach my $cle (keys(%{$result})){ $valeur =$result->{$cle} ; print "$valeur\n" } print "$valeur"
En rouge les modifications apportées.
Je pense que le problème provient du foreach, mais je ne sais pas comment je dois faire.
EDIT : Lorsque j'effectue un print de $valeur dans le foreach, j'obtiens bien mes deux valeurs. Comment puis-je affecter la 1ère valeur à une variable et la 2ème valeur à une deuxième variable ?
Aussi pourquoi lorsque je sais un print dans le foreach et juste après je n'ai pas le même résultat ? Dans le foreach, j'ai bine mes deux valeurs, alors que lorsque je fais un print en dehors du foreach je n'obtiens qu'une valeur
Partager