Nbar en perl, relation tabl hash & var inconu

Fermé
DB601 Messages postés 11 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 25 août 2010 - Modifié par DB601 le 13/07/2010 à 13:46
DB601 Messages postés 11 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 25 août 2010 - 13 juil. 2010 à 14:04
Bonjour à tous,

voilà je suis entrain de faire un script en perl pour avoir automatiquement les protocoles comme le fait nbar dans snmpwal dans cisco

j'ai défini une table de hachage :
%Nbar =('Fan_1' => 'ftp',  
          'Fan_2' => 'http',  
          'Fan_3' => 'egp',  
          'Fan_4' => 'gre',  
          'Fan_5' => 'icmp',  
          'Fan_6' => 'eigrp',  
          'Fan_7' => 'ipinip',  
          'Fan_8' => 'ipsec',  
          'Fan_9' => 'ospf',  
          'Fan_10' => 'bgp',);   

et Fan est une variable d'un tableau @fan
voilà ma fonction get_fan

sub get_fan() {  
 $ciscoEnvMonFanState='.1.3.6.1.4.1.9.9.244.1.2.1.1.3.1';  
   
   
 my $k;  
 my @fan;  
 my $num=0;  
   
 start_snmp();  
 my @columns = ($ciscoEnvMonFanState);  
 $iffan = $session->get_entries(  
     -columns => \@columns,  
     );  
   
 unless (defined($iffan)) {  
                printf("Fan not fountd. ERROR: %s.\n", $session->error);  
        }  
 foreach $k(keys %$iffan) {  
  $num++;  
                print " Fan_$num: $k \n";  
  push (@fan, $k );   
        }  
        $session->close();  
  return @fan;  
 }  

@fan=get_fan();  


et donc j'ai extrait les valeurs de la table de hachage dans un tableau que j'ai appelé

@nomNbar= values(%Nbar);  



et donc moi par exemple je veux afficher le numéro donc Fan_4 par exemple et le nom du protocole qui lui correspond avec les info spécifique de chaque fan
et là j'ai mis une boucle :

$num=o;  
$j=0;  
Foreach $i (@fan) {  

$num++;  
$j++;  

#donc dans cette ligne je veux afficher genre  Fan_1    FTP  
print XML "\t\t\t\t<item type=\"4\" key=\"$i _ $nomNbar[j]  \" value_type=\"3\">\n";  

#Là y a pas de soucis  
print XML "\t\t\t\t\t<description>FAN $num _status</description>\n";  

#et là le OID approprié à chaque nomNbar  
print XML "\t\t\t\t\t<snmp_oid>$i</snmp_oid>\n";  
          }  



Le problème c'est que soit j'ai le J qui ne change pas pour tous les i, et j'ai essayé de faire autrement et là j'avais le nom mais avec le mauvais OID et le mauvais fan-num


est_ce que quelqu'un peut m'aider!!
merci d'avance

1 réponse

DB601 Messages postés 11 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 25 août 2010
13 juil. 2010 à 14:04
personne ne répond :((((
0