[Perl] Question toute bête?

Question toute bête? [Perl] - Perl - Programmation

Marsh Posté le 21-04-2005 à 23:21:22    

Hello  
bon je suis actuellement entrain de boser sur un projet de supervision
réseaux et j'ai bien sur plein de question et surtout j'aimerai avoir
des avis extérieur pour voir si je ne fais pas fausse route!
 
Le but de la manip etant grace a une machine sous linux (qui n'est pas
le server SNMP officiel) de consulter les MIB que chaque équipement pour
détecter le plus rapidement possible le debut de panne physique (cable malade etc).
 
Pour cela les techniciens en place on remarqué que lorsque qu'un cable vat
lacher le FCS-Err augmente significativement. Pour info le matériel est du CISCO
de la famiel 2900. Donc je me suis reporté a la MIB et je vais donc monitorer
les etherStatsCRCAlignErrors (MIB:1.3.6.1.2.1.16.1.1.1.8.+ifindex) de chaque interface.
 
Première question assez simple ai-je choisi la bonne valeur ou quelqu'un
voie une valeur plus judicieuse????
 
Ensuite j'ai decidé de monitorer les etherStatsCRCAlignErrors avec MRTG,
car il me permètra d'envoyer des alertes par mail et puis ça fait de jolie
graphique. Une autre raison a motiver ce choix je fait de pouvoir se "passer"
de base de donnée pour stoker les résultats bien que mon choix s'orientera vers
cette solution si mon projet fonctionne en premier lieux. La aussi pour ces  
histoires de base de donné j'ai vite lu que RRDtool serait la solution a mon
problème mais je n'ai pas creusé le sujet dans cette direction si quelqu'un
peut me réconforté dans ce choix!!
 
Ensuite on ma demandé plus d'informations comme le type d'interface  
la vitesse son etat.... donc cette fois j'ai utilisé le langage perl
(langage avec lequel est prog MRTG) j'ai donc pu réutilisé les  
fonctions snmpget snmpwalk... de MRTG ecrite en Perl pour ecrire
mes propre script.
 
je vous met un script qui récupère l'état de l'interface:
 
###################################################################
#! /usr/bin/perl
# -*- mode: Perl -*-
use SNMP_util "1.04";lib de MRTG
###################################################################
# ifOperStatus 1.3.6.1.2.1.2.2.1.8.ifindex
###################################################################
$ifOperStatus = snmpget ('192.168.0.1', '1.3.6.1.2.1.2.2.1.8.12');
if($ifOperStatus == '1'){
@ifOperStatus2 = 'Up';
}
if($ifOperStatus == '2'){
@ifOperStatus2 = 'Down';
}
if($ifOperStatus == '3'){
@ifOperStatus2 = 'Testing';
}
print "IfOperStatus\n";
print "Valeur brut:$ifOperStatus";
print "Valeur interprétée: interface:@ifOperStatus2\n\n";
###################################################################
 
Pour ce script pas de problème!!
Mais les choses ce complique pour moi car je viens de me mettre au Perl
et pour les autres script ça comment a ce gater.
 
Voici le script qui me pose problème il me retourne l'adresse MAC
du port su switch:
###################################################################
# ifPhysAddress 1.3.6.1.2.1.2.2.1.6.ifindex
###################################################################
@ifPhysAddress = snmpget ('192.168.0.1', '1.3.6.1.2.1.2.2.1.6.12');
print "-----------------------------------------\n";
print "ifPhysAddress\n";
print "Valeur brut: @ifPhysAddress Valeur interprétée:\n";
###################################################################
 
et voici la reponse depuis ma console:
-----------------------------------------
ifPhysAddress
Valeur brut:  
`di Valeur interprétée:
 
le problème est qu'il m'interprète ma chaine de retour comme si cela etait  
des valeurs l'ASCII!!!!!!
 
La question est donc comme je pourais faire pour afficher la chaine en HEXA pure?
Pour que je puisse voir mon adresse MAC au format classique!!!
 
Question toute bête? Non?! :hello:

Reply

Marsh Posté le 21-04-2005 à 23:21:22   

Reply

Marsh Posté le 22-04-2005 à 10:12:23    

Personne ne peut me repondre???

Reply

Marsh Posté le 22-04-2005 à 11:09:30    

utilise unpack:
my $hexa = unpack("H*", $binary);

Reply

Marsh Posté le 22-04-2005 à 14:39:58    

ça marche nikelchrome  
Merci pospos!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed