获取远程网卡MAC地址。

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 prettywolf 的 blog

首先在头文件定义中加入#include "nb30.h"
#pragma comment(lib,"netapi32.lib")
typedef struct _astat_
{
 adapter_status adapt;
 name_buffer    namebuff[30];
} astat, * pastat;

就可以这样调用来获取远程网卡mac地址了:
cstring getmacaddress(cstring snetbiosname)
{
    astat adapter;
 
    ncb ncb;
    uchar uretcode;
 
    memset(&ncb, 0, sizeof(ncb));
    ncb.ncb_command = ncbreset;
    ncb.ncb_lana_num = 0;
 
    uretcode = netbios(&ncb);
 
    memset(&ncb, 0, sizeof(ncb));
    ncb.ncb_command = ncbastat;
    ncb.ncb_lana_num = 0;
 
    snetbiosname.makeupper();
 
    fillmemory(ncb.ncb_callname, ncbnamsz - 1, 0x20);
 
    strcpy((char *)ncb.ncb_callname, (lpctstr) snetbiosname);
 
    ncb.ncb_callname[snetbiosname.getlength()] = 0x20;
    ncb.ncb_callname[ncbnamsz] = 0x0;
 
    ncb.ncb_buffer = (unsigned char *) &adapter;
    ncb.ncb_length = sizeof(adapter);
 
    uretcode = netbios(&ncb);
   
    cstring smacaddress;
 
    if (uretcode == 0)
    {
     smacaddress.format(_t("%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]);
    }
    return smacaddress;
}

本文关键:MAC地址,远程MAC地址,MAC
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top