网卡的MAC地址吧,如果是可参考NetBios函数。
解决方案 »
- --------自己写的一个MFC ActiveX控件,用Dialog程序插入控件,VS会关闭------
- 如何让另一个应用程序最大话
- missing storage-class or type specifiers syntax error : missing ';' before identifier 的问题??
- 请问:如何用vc调用java类?可否提供在vc中初始化java 1.4虚拟机的例子?
- 关于dbgrid的问题,郁闷了好长时间了,高手帮帮忙吧!
- 请教各位同仁
- 从当前和长久来看,是用MFC开发COM好啊!还是用ATL开发COM好啊!
- VC++的输出窗口是如何编写成的?
- 各位,用[过]虚拟主机的进来一下(Tase免了,我们在一个机子里)
- ATL控件自己如何得到它自身现在的路径?
- 自定义消息映像宏,怎么提示:error c2447 关注up有分
- 请问各位大哥,如何在程序中添加启动画面?
{
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;
}
將hname傳入上面的函數GetMacAddress (hname)即可
WORD wVer;
WSADATA wsaData;
char hname[25];
CString ip;
PHOSTENT hostinfo;
wVer = MAKEWORD( 2, 0 );
//==0000 0000 0000 0010=0x0002//主版本號在低位字節,輔版本號在高位字節
if ( WSAStartup( wVer, &wsaData ) == 0 )// == WSAStartup(0x0002, &wsaData )
{
if( gethostname (hname, sizeof(hname)) == 0)
{
if((hostinfo = gethostbyname(hname)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
}
WSACleanup( );
AfxMessageBox(hname);
AfxMessageBox(ip);