方法1
连接Netapi32.lib库,然后define 一个NCB的结构体,再调用netbois(ncb)获取序列号.
如果netbios被禁用的话,将取不到序列号
方法2
调用IPCONFIG命令获取其结果,实用价值不大。
方法3,使用SNMP协议
读取 LoadLibrary("inetmib1.dll");
获取DLL中SnmpExtensionInit,SnmpExtensionInitEx,SnmpExtensionQuery,SnmpExtensionTrap的函数地址,然后使用SNMP_oidcpy填充AsnObjectIdentifier,即可获得网卡的各个参数。
还有一个方法是
include "Iphlpapi.h"
#pragma comment(lib, "Iphlpapi.lib")
bool GetMACaddress(CString& strAddress)
{
IP_ADAPTER_INFO AdapterInfo[16]; // 定义网卡信息存贮区。
DWORD dwBufLen = sizeof(AdapterInfo);
DWORD dwStatus = GetAdaptersInfo(
AdapterInfo, // [output] 指向接收数据缓冲指针
&dwBufLen); // [input] 缓冲区大小
if(dwStatus != ERROR_SUCCESS)
return false;
strAddress.Format("%02X:%02X:%02X:%02X:%02X:%02X",
AdapterInfo->Address[0],
AdapterInfo->Address[1],
AdapterInfo->Address[2],
AdapterInfo->Address[3],
AdapterInfo->Address[4],
AdapterInfo->Address[5]);
return true;
}
但是前提是要安装新的SDK,没有测试过。