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

Windows Discussion :

obtenir son adresse mac


Sujet :

Windows

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut obtenir son adresse mac
    Bonjour,
    j'aimerai pouvoir récuperer en c++ l(es)'adresse(s) mac des carte(s) réseau(x) de mon pc !
    Je désire faire cela dans un programme en c++ sous windows (XP).

    Et j'ai bien regarder sur google et recherché sur les forums mais des topics sont présents uniquement pour linux (dans le cadre d'un développement)

    Merci d'avance pour vos informations
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

  2. #2
    Membre habitué

    Inscrit en
    Mai 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 132
    Points : 171
    Points
    171
    Par défaut
    Mon ami,

    et pourquoi vous n’utilisez pas MSDN du tout ? Il y a un exemple de MSDN:


    Getting the MAC Address for an Ethernet Adapter


    You can use the Netbios function to get the Media Access Control (MAC) address for an ethernet adapter if your card is bound to NetBIOS. The following example uses the NCBASTAT command, providing an asterisk (*) as the name in the ncb_callname member of the NCB structure.
    Note The following code does not work reliably on Windows 95 or Windows 98.
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include <windows.h>
    #include <wincon.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    #include <nb30.h>
    
    typedef struct _ASTAT_
    &#123;
        ADAPTER_STATUS adapt;
        NAME_BUFFER    NameBuff &#91;30&#93;;
    &#125;ASTAT, * PASTAT;
    
    ASTAT Adapter;
    
    void main &#40;void&#41;
    &#123;
        NCB ncb;
        UCHAR uRetCode;
        char NetName&#91;50&#93;;
    
        memset&#40; &ncb, 0, sizeof&#40;ncb&#41; &#41;;
        ncb.ncb_command = NCBRESET;
        ncb.ncb_lana_num = 0;
    
        uRetCode = Netbios&#40; &ncb &#41;;
        printf&#40; "The NCBRESET return code is&#58; 0x%x \n", uRetCode &#41;;
    
        memset&#40; &ncb, 0, sizeof&#40;ncb&#41; &#41;;
        ncb.ncb_command = NCBASTAT;
        ncb.ncb_lana_num = 0;
    
        strcpy&#40; ncb.ncb_callname,  "*               " &#41;;
        ncb.ncb_buffer = &#40;char *&#41; &Adapter;
        ncb.ncb_length = sizeof&#40;Adapter&#41;;
    
        uRetCode = Netbios&#40; &ncb &#41;;
        printf&#40; "The NCBASTAT return code is&#58; 0x%x \n", uRetCode &#41;;
        if &#40; uRetCode == 0 &#41;
        &#123;
            printf&#40; "The Ethernet Number is&#58; %02x%02x%02x%02x%02x%02x\n",
                    Adapter.adapt.adapter_address&#91;0&#93;,
                    Adapter.adapt.adapter_address&#91;1&#93;,
                    Adapter.adapt.adapter_address&#91;2&#93;,
                    Adapter.adapt.adapter_address&#91;3&#93;,
                    Adapter.adapt.adapter_address&#91;4&#93;,
                    Adapter.adapt.adapter_address&#91;5&#93; &#41;;
        &#125;
    &#125;
    Il faut joindre libraire Netapi32.lib. Désole pour ma langue française …

    Fredy


    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut
    Merci j'ai testé ton exemple (je l'ai d'ailleurs retrouvé dans ma msdn) mais je n'ai pas reussi à obtenir mon adresse mac
    J'ai deux fois le code de retour 0x23 !!!
    (donc pas le bon code de retour qui doit être egale à 0x00)

    J'ai cherché mais je ne trouve pas quel est mon problème ?
    (NetBios ?)

    En espérant que tu puisses me répondre...
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    Personnelement je n'aime pas cette méthode car liée à NetBios.
    J'utilise GetAdaptersInfo (champ Address de IP_ADAPTER_INFO). Y'a un exemple dans la msdn (il affiche pas l'adresse MAC mais l'adresse mémoire de l'adresse MAC, faut boucler sur le contenu de Address AddressLenght fois).

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut
    je testerais...
    Merci
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut
    Parfait, un exemple simple est sur la msdn mais GlobalFree ne fonctionne pas ! (bizzare)
    Merci encore !
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    Oui il file un pointeur récupéré via malloc. Soit il a fait son propre malloc, soit c'est un bug...

+ 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. Réponses: 3
    Dernier message: 30/10/2008, 14h30
  3. [Info] obtenir l'adresse MAC d'une machine
    Par bigboomshakala dans le forum C++
    Réponses: 3
    Dernier message: 27/02/2005, 17h07
  4. obtenir l'adresse MAC
    Par acastor dans le forum Développement
    Réponses: 2
    Dernier message: 18/04/2004, 13h19
  5. Obtenir l'adresse MAC réelle
    Par gpetto dans le forum Réseau
    Réponses: 16
    Dernier message: 03/11/2003, 16h56

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