网卡MAC读取
如何在VC++中实现! bool getCardId(char* cardId){
ASTAT Adapter;
NCB Ncb;
UCHAR uRetCode;
LANA_ENUM lenum;
memset( &Ncb, 0, sizeof(Ncb));
Ncb.ncb_command = NCBENUM;
Ncb.ncb_buffer = (UCHAR *)&lenum;
Ncb.ncb_length = sizeof(lenum);
uRetCode = Netbios( &Ncb );
if(uRetCode!=0 || lenum.length<=0)
return false;
memset( &Ncb, 0, sizeof(Ncb) );
Ncb.ncb_command = NCBRESET;
Ncb.ncb_lana_num = lenum.lana;
uRetCode = Netbios( &Ncb );
if(uRetCode!=0 )
return false;
memset( &Ncb, 0, sizeof (Ncb) );
Ncb.ncb_command = NCBASTAT;
Ncb.ncb_lana_num = lenum.lana;
strcpy(( char*)Ncb.ncb_callname,"* " );
Ncb.ncb_buffer = (unsigned char *) &Adapter;
Ncb.ncb_length = sizeof(Adapter);
uRetCode = Netbios( &Ncb );
if(uRetCode!=0)
return false;
sprintf(cardId,"%02x%02x%02x%02x%02x%02x",
Adapter.adapt.adapter_address,
Adapter.adapt.adapter_address,
Adapter.adapt.adapter_address,
Adapter.adapt.adapter_address,
Adapter.adapt.adapter_address,
Adapter.adapt.adapter_address);
return true;
}
页:
[1]