Comment obtenir une adresse MAC sous Windows avec C ++?

J’ai besoin d’aide pour les adresses MAC. Je dois l’obtenir en utilisant du code en C ++. Quelqu’un pourrait-il m’aider avec ceci? J’ai déjà essayé beaucoup de codes inutiles. S’il existe une méthode ou une bibliothèque spécifique que je devrais étudier pour trouver l’adresse MAC, je serais très heureux si quelqu’un me transmettait un lien ou quelque chose pour en savoir plus.

Je l’ai eu les gens! Un gars du travail et moi-même avons résolu ce problème en utilisant ce code:

#include  #include  #include  #include  #pragma comment(lib, "iphlpapi.lib") char* getMAC(); int main(){ getMAC(); system("pause"); } char* getMAC(){ PIP_ADAPTER_INFO AdapterInfo; DWORD dwBufLen = sizeof(AdapterInfo); char *mac_addr = (char*)malloc(17); AdapterInfo = (IP_ADAPTER_INFO *) malloc(sizeof(IP_ADAPTER_INFO)); if (AdapterInfo == NULL) { printf("Error allocating memory needed to call GetAdaptersinfo\n"); } // Make an initial call to GetAdaptersInfo to get the necessary size into the dwBufLen variable if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == ERROR_BUFFER_OVERFLOW) { AdapterInfo = (IP_ADAPTER_INFO *) malloc(dwBufLen); if (AdapterInfo == NULL) { printf("Error allocating memory needed to call GetAdaptersinfo\n"); } } if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == NO_ERROR) { PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info do { sprintf(mac_addr, "%02X:%02X:%02X:%02X:%02X:%02X", pAdapterInfo->Address[0], pAdapterInfo->Address[1], pAdapterInfo->Address[2], pAdapterInfo->Address[3], pAdapterInfo->Address[4], pAdapterInfo->Address[5]); printf("Address: %s, mac: %s\n", pAdapterInfo->IpAddressList.IpAddress.Ssortingng, mac_addr); return mac_addr; printf("\n"); pAdapterInfo = pAdapterInfo->Next; }while(pAdapterInfo); } free(AdapterInfo); } 

C ++ n’a pas de concept intégré d’une “adresse MAC”, ce n’est pas quelque chose qui doit exister pour que le code C ++ puisse s’exécuter. Ainsi, c’est spécifique à la plate-forme. Vous devez nous dire pour quelle plate-forme vous essayez de le faire, et aussi (bien sûr) lire la documentation qui correspond à cette plate-forme.

Si vous souhaitez le faire de manière portable, vous devez rechercher une bibliothèque adaptée qui prend en charge toutes les plates-formes souhaitées.

Notez également qu’un ordinateur peut avoir un nombre quelconque de cartes réseau, il n’y a donc pas besoin d’ une seule adresse MAC.