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

C++ Discussion :

Recuperation adresse mac c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2013
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 44
    Par défaut Recuperation adresse mac c++
    Bonjour,
    je veux récupérer l'adresse Mac de mon pc dans mon application c++, j'ai testé cette fonction il récupère l'adresse et l'affiché mais je veux mettre cette adresse dans une variable.
    qui peut m'aider svp

    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
    static void GetMACaddress(void)
    {
    	unsigned char MACData[8];						// Allocate data structure for MAC (6 bytes needed)
     
    	WKSTA_TRANSPORT_INFO_0 *pwkti;					// Allocate data structure for Netbios
    	DWORD dwEntriesRead;
    	DWORD dwTotalEntries;
    	BYTE *pbBuffer;
     
    	// Get MAC address via NetBios's enumerate function
    	NET_API_STATUS dwStatus = NetWkstaTransportEnum(
    		NULL,						// [in]  server name
    		0,							// [in]  data structure to return
    		&pbBuffer,					// [out] pointer to buffer
    		MAX_PREFERRED_LENGTH,		// [in]  maximum length
    		&dwEntriesRead,				// [out] counter of elements actually enumerated
    		&dwTotalEntries,			// [out] total number of elements that could be enumerated
    		NULL);						// [in/out] resume handle
    	assert(dwStatus == NERR_Success);
     
    	pwkti = (WKSTA_TRANSPORT_INFO_0 *)pbBuffer;		// type cast the buffer
     
    	for(DWORD i=1; i< dwEntriesRead; i++)			// first address is 00000000, skip it
    	{												// enumerate MACs and print
    		swscanf((wchar_t *)pwkti[i].wkti0_transport_address, L"%2hx%2hx%2hx%2hx%2hx%2hx", 
    			&MACData[0], &MACData[1], &MACData[2], &MACData[3], &MACData[4], &MACData[5]);
    		PrintMACaddress(MACData);
     
     
    	}

  2. #2
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Bonjour

    Il suffit de concaténer MACData dans un std::string avec l'opérateur +=.
    (Il faudra aussi faire une conversion unsigned char vers char.)

  3. #3
    Membre actif
    Inscrit en
    Février 2013
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 44
    Par défaut
    svp Ehonn comment concaténer MACData!!!!

  4. #4
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Je suis pas convaincu pour la conversion unsigned char [] vers char []. Mais voilà un code pour donner un exemple.

    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
    // g++ -Wall -Wextra -std=c++11 -pedantic main.cpp -o main && ./main
    // g++ -Wall -Wextra -pedantic main.cpp -o main && ./main
     
    #include <iostream>
     
    #include <string>
     
     
    int main()
    {
    	std::string mac;
     
    	// On récupère la mac
    	std::cout << "Récupération de la mac = ";
    	{
    		unsigned char MACData[8] = {0};
     
    		for (std::size_t i = 0; i < 6; ++i)
    		{
    			MACData[0] = '0' + i;
    			MACData[1] = 'a' + i;
     
    			if (i != 0) { std::cout << ":"; }
    			std::cout << MACData;
     
    			// Concaténation de MACData dans mac
    			mac += reinterpret_cast<char const * const>(MACData);
    		}
    		std::cout << std::endl;
    	}
     
    	// Affichage de la mac final
    	std::cout << "mac = " << mac << std::endl;
     
    	return 0;
    }
    Et voici la sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Récupération de la mac = 0a:1b:2c:3d:4e:5f
    mac = 0a1b2c3d4e5f

  5. #5
    Membre actif
    Inscrit en
    Février 2013
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 44
    Par défaut
    J'ai pas réussi de trouver une solution pour ce problème, svp qui a une autre méthode de récupération d'adresse mac !!!

  6. #6
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Quel est ton souci ?
    Peut être que ce n'est pas la solution qui faut changer :rolleyes: lialalalou

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

Discussions similaires

  1. recuperation adresse mac d'un poste distant
    Par tickerdu22 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 24/06/2010, 11h34
  2. recuperer adresse MAC
    Par mapmip dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/11/2009, 14h06
  3. Recuperer Adresse MAC dans un Edit Control
    Par Lyrix30 dans le forum Visual C++
    Réponses: 7
    Dernier message: 08/10/2008, 15h38
  4. Recuperer adresse Mac en vb.net
    Par niceen dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/03/2008, 12h43
  5. 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

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