方法很多啦,给我发一个EMail提醒一下,我可以给你一个例程原码。
[email protected]

解决方案 »

  1.   

    可通过Windows 9x/NT/Win2000中内置的NetApi32.DLL的功能来实现的。首先通过发送NCBENUM命令,获取网卡的数目和每张网卡的内部编号,然后对每个网卡标号发送NCBASTAT命令获取其MAC地址。在工程中加入如下代码:#include "stdafx.h"#include <windows.h>#include <wincon.h>#include <stdlib.h>#include <stdio.h>#include <time.h>#include <nb30.h>typedef struct _ASTAT_{  ADAPTER_STATUS adapt;  NAME_BUFFER  NameBuff [30];} ASTAT, * PASTAT;ASTAT Adapter;void getmac_one (int lana_num){  NCB ncb;  UCHAR uRetCode;  memset( &ncb, 0, sizeof(ncb) );  ncb.ncb_command = NCBRESET;  ncb.ncb_lana_num = lana_num   uRetCode = Netbios( &ncb );  printf( "The NCBRESET return code is: 0x%x \n", uRetCode );  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 );  printf( "The NCBASTAT return code is: 0x%x \n", uRetCode );  if ( uRetCode == 0 )  {    printf( "The Ethernet Number[%d] is: %02X%02X-%02X%02X-%02X%02X\n",lana_num,            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] );  }}int main(int argc, char* argv[]){  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 );  printf( "The NCBENUM return code is: 0x%x \n", uRetCode );  if ( uRetCode == 0 )  {    printf( "Ethernet Count is : %d\n\n", lana_enum.length);    for ( int i=0; i<lana_enum.length; ++i)
          getmac_one( lana_enum.lana[i]);
      }
      return 0;
    }记得给分啊!
      

  2.   

    以上程序在2000下可以使用,但当启动时网络是禁用的或网线掉了,获得的MAC地址不对,而且是随机的。有没有别的办法
      

  3.   

    你看一下MSDN上有个例子,就是GetMacAddress的你也可以用NbStat命令来得到。其实还是用netbios来得方便些