可以通过IP获得该机器的机器名,再由机器名获得MAC地址。
解决方案 »
- vc中如何将内存中的视频数据直接传送给控件播放
- strlen GetLength
- 这样的宏应如何写#define TRACK(s) ("File: " __FILE__ " Line: " __LINE__ " : " s )
- 用系统时间命名文件?????
- 关于宏的问题
- 在VC++中执行Dos下的命令如Format
- CFormView中Edit控件如何响应Ctrl+C复制和Ctrl+V粘贴功能
- 如何进行远程进程内联汇编?-等待前辈指点
- 职业选择请教:国企运营商vs外企研发
- 建议各位不要用“求教”“高手请进”这类的标题
- C++ Builder与Microsoft的TTS技术
- 许多按钮发WM_COMMAND消息到视图,在视图中重载WindowProc,但如何知道是哪一个按钮发出的消息
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];
}ASTAT, * PASTAT; ASTAT Adapter;
NCB ncb;
UCHAR uRetCode;
AnsiString MachineName;
char NetName[50];
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = 0;
uRetCode = Netbios( &ncb );
if (uRetCode!=0)
ShowMessage("网卡初始化失败!");
memset(&ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = 0;
memset(ncb.ncb_callname,' ',NCBNAMSZ);
MachineName=Edit1->Text.UpperCase();
strncpy(ncb.ncb_callname,MachineName.c_str(),MachineName.Length());
ncb.ncb_buffer = (char *) &Adapter;
ncb.ncb_length = sizeof(Adapter); uRetCode = Netbios( &ncb );
if ( uRetCode == 0 )
{
AnsiString Address;
int i;
Address="";
for(i=0;i<6;i++)
{
Address+=IntToHex((int)Adapter.adapt.adapter_address[i],2);
}
ShowMessage(Address);
}
//ncb_callname的第一字符是*表示取得本机信息,否则为要获取信息的计算机的机器名或IP地址。机器名必须大写
ping xxx.xxx.xxx.xxx
然后
arp -a
就看见啦
GUID guid;
char address[30];
if(CoCreateGuid(&guid)!=S_OK)
MessageBox("Error");
else
{
sprintf(address,
"%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X",
guid.Data4[0],guid.Data4[1],guid.Data4[2],guid.Data4[3],
guid.Data4[4],guid.Data4[5],guid.Data4[6],guid.Data4[7]);
address[25] ='\0';
MessageBox(address);
}
GUID 的办法原理是对的,没试过
如何得到其他机器的MAC呢(输入IP)?