Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2902 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Question toute bête?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] Question toute bête?

n°1055965
mc40
Posté le 21-04-2005 à 23:21:22  profilanswer
 

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:

mood
Publicité
Posté le 21-04-2005 à 23:21:22  profilanswer
 

n°1056126
mc40
Posté le 22-04-2005 à 10:12:23  profilanswer
 

Personne ne peut me repondre???

n°1056175
pospos
Posté le 22-04-2005 à 11:09:30  profilanswer
 

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

n°1056609
mc40
Posté le 22-04-2005 à 14:39:58  profilanswer
 

ça marche nikelchrome  
Merci pospos!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Question toute bête?

 

Sujets relatifs
Petite question VBS[ Perl ] conversion HEXA => ASCII
[VBA] Question simple sur InStr et adresse e-mail...Perl + html
petite question sur les THREADQuestion sur upload de fichier
[PERL]Est-ce possible de ne pas faire attention à la case?[perl] connaitre la classe d'un objet
obtenir mon adresse IP en PerlBonjour, juste une question !
Plus de sujets relatifs à : [Perl] Question toute bête?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR