IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

Formatage de l'adresse MAC


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 197
    Par défaut Formatage de l'adresse MAC
    Bonsoir a tous, voila mon problemes:

    J ai un fichier contenant la table CAM:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
    13;00:16:35:62:00:0A;Fa1/32;
    12;00:13:21:1E:48:0D;Fa1/4;
    900;00:80:9F:55:11:04;Fa1/27;
    13;00:01:E6:54:1C:0D;Gi1/1;
    11;00:12:01:63:07:00;Gi1/2;
    
    J ai un autre fichier contanat la table ARP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
    10.9.16.36;0:80:9f:55:3:0;
    10.4.19.3;0:e:7f:69:97:c;
    10.4.19.44;0:1:e6:9e:22:d;
    10.9.16.54;0:80:9f:54:be:2;
    10.9.20.2;0:1:e6:0:ca:3;
    
    Le probleme etant que les @MAC n ont pas le meme format hors pour faire une recherche c est pas genial. dc mon souhait c est qu aient le meme format !!!
    Merci d avance Jules

  2. #2
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Pour les courageux, pack/unpack permet certainement d'arriver à quelquechose.

    Etant trop fainéant pour m'investir dans ces fonctions (dont je n'ai besoin que trop rarement), je leur ai préféré la solution laborieuse pour ce genre de conversion : split/sprintf/join :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $mac="0:80:9f:55:3:0";
    my @liste=split(/:/, $mac);
    my @liste_formatee=();
    push @liste_formatee, sprintf "%02x", $_ foreach @liste;
    my $mac_formatee=join (":", @liste_formatee);
    print "$mac_formatee\n"

  3. #3
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par 2Eurocents
    Pour les courageux, pack/unpack permet certainement d'arriver à quelquechose.

    Etant trop fainéant pour m'investir dans ces fonctions (dont je n'ai besoin que trop rarement), je leur ai préféré la solution laborieuse pour ce genre de conversion : split/sprintf/join :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $mac="0:80:9f:55:3:0";
    my @liste=split(/:/, $mac);
    my @liste_formatee=();
    push @liste_formatee, sprintf "%02x", $_ foreach @liste;
    my $mac_formatee=join (":", @liste_formatee);
    print "$mac_formatee\n"
    Ne pas oublier d'employer uc() pour que les lettres soient en majuscules.

    --
    Jedaï

  4. #4
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Citation Envoyé par Jedai
    Ne pas oublier d'employer uc() pour que les lettres soient en majuscules.
    Ce n'est même pas nécessaire
    Avec le sprintf, un format "%02x" sortira toutes les lettres des nombres hexadécimaux en minuscules, un "%02X" sortira toutes les lettres des nombres hexadécimaux en majuscules.

    Par contre, il est nécessaire de corriger la faute que j'ai commise en oubliant de prendre en compte le fait que le nombre était déjà exprimé en hexadécimal

    Un code correct serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $mac="0:80:9f:55:3:0";
    my @liste=split(/:/, $mac);
    my @liste_formatee=();
    push @liste_formatee, sprintf "%02X", hex($_) foreach @liste;
    my $mac_formatee=join (":", @liste_formatee);
    print "$mac_formatee\n"
    Notez la présence d'un "hex" supplémentaire sur le nombre passé au sprintf.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 197
    Par défaut
    Merci beaucoup ca marche nikel !!!!
    Jules
    bonne matinee

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obtenir l'adresse mac de sa carte reseau
    Par kivoch dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/11/2009, 18h30
  2. recuperer adresse MAC d'un pc sur un reseau local
    Par LineLe dans le forum Développement
    Réponses: 3
    Dernier message: 25/03/2005, 16h37
  3. Réponses: 5
    Dernier message: 25/03/2003, 17h27
  4. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo