#include "stdafx.h"
#include
#include
#include
#include
#pragma comment(lib,"netapi32.lib")
int getMac();
typedef struct ASTAT{//自定义网络适配器状态和名字表信息
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
}ASTAT, *PASTAT;
ASTAT Adapter;
int _tmain(int argc, _TCHAR* argv[])
{
NCB ncb;
UCHAR uRetcode;
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = 0;
uRetcode = Netbios(&ncb);
printf("The return code is 0x%x\n",uRetcode);
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = 0;
//将网络适配器数据保存到Adapter结构体中
memcpy(&ncb.ncb_callname,"* ",16);
ncb.ncb_buffer = (UCHAR*) &Adapter;
ncb.ncb_length = sizeof(Adapter);
uRetcode = Netbios(&ncb);
printf("The return code is 0x%x\n",uRetcode);
if(uRetcode == 0){
printf("The Ethernet Number is:%02x-%02x-%02x-%02x-%02x-%02x\n",
Adapter.adapt.adapter_address[0],
Adapter.adapt.adapter_address[1],
Adapter.adapt.adapter_address[2],
Adapter.adapt.adapter_address[3],
Adapter.adapt.adapter_address[4],
Adapter.adapt.adapter_address[5]);
}
getMac();
system("pause");
return 0;
}
我查了一下 0x23代表 NRC_BRIDGE 代表没有指定有效的网络编号 但是不知道在哪指定有效网络编号啊。求救各位大神!!!