发信人: skyice()
整理人: wenbobo(2003-08-26 16:37:51), 站内信件
|
应 xgh 的要求,将获取网卡的 MAC 地址的代码贴出来
int GetMacCount(void)
// 获取网卡数
{
NCB ncb;
UCHAR uRetCode;
LANA_ENUM lana_enum;
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command=NCBENUM;
ncb.ncb_buffer=(unsigned char *)&lana_enum;
ncb.ncb_length=sizeof(lana_enum);
uRetCode=Netbios(&ncb);
if(uRetCode==0)
return lana_enum.length;
else
return -1;
}
LPCSTR GetMacAddress(int lana_num)
// 获取 mac 地址
{
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuf[30];
}ASTAT,* PASTAT;
ASTAT Adapter;
NCB ncb;
UCHAR uRetCode;
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command=NCBRESET;
ncb.ncb_lana_num=lana_num;
uRetCode=Netbios(&ncb);
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command=NCBASTAT;
ncb.ncb_lana_num=lana_num;
strcpy((char *)ncb.ncb_callname,"* ");
ncb.ncb_buffer=(unsigned char *)&Adapter;
ncb.ncb_length=sizeof(Adapter);
uRetCode=Netbios(&ncb);
if(uRetCode==0)
{
char mac[15], * lpmac;
sprintf(mac,"%02X%02X-%02X%02X-%02X%02X",
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]);
lpmac=mac;
return lpmac;
}
else
return NULL;
}
先获取系统中安装的网卡数,然后循环获取每块网卡的 mac 地址
-- 欢迎您到C语言版来!
欢迎光临BBS系统版!
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.99.93.251]
|
|