Jneu(沧海桑田) 大侠,请进来一下!
Bind 2002-03-06 08:05:06 我看了你回答的一个如何获取网卡MAC地址的问题,现在还有一个不太明白的地方,能不能指教一下?
就是我在调用以下这段代码时,得到的lana_enum.length值为6,但我的机器上明明只有一块网卡,不知作何解?而且我在很多机器上作过试验,即使只有一块网卡,可以得到的LANA编号也不会只有一个.另外LANA号好像也不是连续的,有的机器LANA号为0时可能都得不到MAC地址.以上问题不知能不能指教一下?谢了!
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);
// 向 网 卡 发 送NCBENUM 命 令,以 获 取 当 前 机 器 的 网 卡 信 息,
//如 有 多 少 个 网 卡、 每 张 网 卡 的 编 号 等
uRetCode = Netbios( &ncb );
printf( "The NCBENUM return code is: 0x %x \n", uRetCode );
if ( uRetCode == 0 )
{
printf( "Ethernet Count is : %d\n\n", lana_enum.length);
// 对 每 一 张 网 卡, 以 其 网 卡 编 号 为
//输 入 编 号, 获 取 其MAC 地 址
}