我想要的是可用于编程的源代码。
who can help me?

解决方案 »

  1.   

    [email protected]
    thank you!
      

  2.   

    能否通过使用netbios,或者象NBTSTAT那样得到MAC地址
    最重要的是效率高!
      

  3.   

    有源代码??我也要!!
    [email protected]
    谢谢!!!!
      

  4.   

        zeclmj你的方法是调用GetIpNetTable()读取arp表的,但是arp表中并不一定有网络中的所有机器的MAC地址呀!
      

  5.   

    在DOS模式下打arp -a,就能列出
      

  6.   

    pengkejian(悠悠荡荡) 
    可以,写过,有ASM和VC两种版本,要哪个。
      

  7.   

    Julienjut(秋水):
        给我VC的吧,万分感谢!   [email protected]
      

  8.   

    本人写的一个函数,取本机的MAC地址:
    //需要netapi32.lib 库和nb30.h头文件
    //自定义结构
    typedef struct _ASTAT_
    {
    ADAPTER_STATUS adapt;
    NAME_BUFFER NameBuff[30];
    }ASTAT,*PASTAT;
    //函数
    char *GetLocalMacAddress ()//
    {
    ASTAT Adapter;//ASTAT,自定义的结构
    NCB ncb;
    UCHAR uRetCode;

    memset(&ncb,0,sizeof(ncb));
    ncb.ncb_command=NCBRESET;
    ncb.ncb_lana_num=0;
    uRetCode=Netbios(&ncb);
    if(uRetCode!=0)
    AfxMessageBox("网卡初始化失败!");
    memset(&ncb,0,sizeof(ncb));
    ncb.ncb_command=NCBASTAT;
    ncb.ncb_lana_num=0;
    //ncb_callname的第一字符是*表示取得本机信息
    memset(ncb.ncb_callname,'*',1); ncb.ncb_buffer=(unsigned char *)&Adapter;
    ncb.ncb_length=sizeof(Adapter); uRetCode=Netbios(&ncb);
    char CardNumber[12];
    if(uRetCode==0)
    {
    int i;
    char s[1];
    for(i=0;i<6;i++)
    {
    itoa((int)Adapter.adapt.adapter_address [i],s,16);
    strncpy(CardNumber+i*2,s,2);
    }
    CardNumber[12]='\0';
    }
      return CardNumber;
    }别忘 了给分!
      

  9.   

    上面两位大哥,你们取的都是本机的MAC地址!
    有没有取其他机器MAC地址的方法?(光读ARP表是不够的,ARP表中不一定有网络内的所有IP—MAC对应信息)
      

  10.   

    可以通过IP地址取MAC但要能PING通
      

  11.   

    将memset(ncb.ncb_callname,'*',1);
    一句中的*号换成要取的机器IP即可!!
      

  12.   

    To: pursuer_zhao(永远有多远)
        谢谢!!能不能进一步取得其他机器的多个MAC地址??
      

  13.   

    To: pursuer_zhao(永远有多远)
        分已经给了。To: ALL
        能不能进一步取得其他机器的多个MAC地址?? (还会再给分的)