Comment faire pour obtenir l'Adresse MAC de Windows avec C++?
J'ai besoin d'un peu d'aide avec les adresses MAC. - Je l'obtenir à l'aide du code en C++, donc quelqu'un pourrait-il m'aider? J'ai déjà essayé beaucoup de choses inutiles codes. Si existe aucune méthode spécifique ou une lib que je devrais étudier pour trouver l'adresse MAC, je serai très heureux si quelqu'un me passer un lien ou quelque chose pour en savoir plus à ce sujet.
Dans ce système d'exploitation?
C'est une Plate-forme spécifique de la question, qui n'a rien à voir avec (Standard) C++. Donc, s'il vous plaît dites-nous pour quel système d'exploitation que vous essayez de l'obtenir.
libcap, wincap peut permet.
L'adresse MAC de ce media access controller? Il pourrait y avoir de nombreux.
système d'exploitation que vous utilisez?
C'est une Plate-forme spécifique de la question, qui n'a rien à voir avec (Standard) C++. Donc, s'il vous plaît dites-nous pour quel système d'exploitation que vous essayez de l'obtenir.
libcap, wincap peut permet.
L'adresse MAC de ce media access controller? Il pourrait y avoir de nombreux.
système d'exploitation que vous utilisez?
OriginalL'auteur guiarrd | 2012-11-30
Vous devez vous connecter pour publier un commentaire.
Je l'ai eu à les gens! Moi et un gars de l'œuvre de résoudre ce à l'aide de ce code:
Je vois une fuite de mémoire dans le présent code:
free(AdapterInfo);
ne pas se produire sireturn mac_addr;
qui se passe. Un autre problème est que la fonction ne retourne rien sireturn mac_addr;
ne se produise pas. Mais l'idée de base semble être correct.Vous pouvez utiliser le code suivant( à la place de sprintf) pour éviter une erreur de compilation dans VS 2015 sprintf_s(mac_addr, 6 * sizeof(pAdapterInfo->Adresse[1]), "%02X:%02X:%02X:%02X:%02X:%02X", pAdapterInfo->Adresse[0], pAdapterInfo->Adresse[1], pAdapterInfo->Adresse[2], pAdapterInfo->Adresse[3], pAdapterInfo->Adresse[4], pAdapterInfo->Adresse[5]);
Sauf si vous avez encore de support de Windows 2000, vous devez utiliser GetAdaptersAddresses msdn.microsoft.com/en-us/library/windows/desktop/...
Et
mac_addr = (char*)malloc(17);
devrait êtremac_addr = (char*)malloc(18);
donc il ya de la place pour le NUL de terminaison de la chaîne.OriginalL'auteur guiarrd
C++ n'ont pas intégré dans le concept d'une "adresse MAC", ce n'est pas quelque chose qui doit exister pour que le code C++ à exécuter. Ainsi, il est une plate-forme spécifique. Vous devez nous dire quelle plate-forme vous essayez de faire ceci, et aussi (bien sûr) de lire la documentation qui correspond à cette plate-forme.
Si vous voulez le faire de façon portable, vous devriez regarder pour une solution de bibliothèque qui prend en charge toutes les plates-formes.
Aussi, notez qu'un ordinateur peut avoir n'importe quel nombre de cartes réseau, donc il n'y a pas d'exigence qu'il y a juste un adresse MAC.
OriginalL'auteur unwind