Bonjour,
Je cherche à récupérer une adresse MAC sur mon PC à partir de la fonction NetBios de l'API Windows :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
#include <windows.h>
...
int main () {
NCB ncb;
UCHAR uRetCode;
char NetName[50];
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = 0;// 0
uRetCode = Netbios( &ncb );
printf( "The NCBRESET return code is: 0x%x \n", uRetCode ); |
et le code de retour est 0x023, ce qui veut dire : "NB_INVALID_ADAPTER"
Le problème est que ma liste d'adaptateurs est vide !!!
C'est quoi ces "adaptateurs" ?
Comment récupérer l'adresse MAC alors ?
Dans ma configuration j'ai une carte ethernet qui me sert pour le réseau local avec un autre PC (déconnecté lorsque j'ai exécuté ce code).
Ma connexion internet passe par un modem et un port USB...
Tout en écrivant, j'ai démarré mon second PC et mon programme m'a retourné l'adresse mac exacte de ma carte ethernet...
Pourtant, si je tape en mode console "ipconfig /all", j'obtiens bien l'adresse physique (mac) de ma carte éthernet et de ma carte internet ADSL (celle qui m'intéresse)
Si je change cette ligne :
ncb.ncb_lana_num = 1;// 0 avant
, j'obtiens de nouveau un code 023
ipconfig /all me récupère bien les deux adresses mac même sans être connecté. Commet pourrais-je émuler le fonctionnement de cette commande avec l'API Windows ?
Partager