2024年4月11日发(作者:)

VC++获取网卡MAC、硬盘序列号、CPU ID、BIOS编号

以下代码可以取得系统特征码(网卡MAC、硬盘序列号、CPU ID、BIOS编号)

BYTE szSystemInfo[4096]; // 在程序执行完毕后,此处存储取得的系统特征码

UINT uSystemInfoLen = 0; // 在程序执行完毕后,此处存储取得的系统特征码的长度

// 网卡 MAC 地址,注意: MAC 地址是可以在注册表中修改的

{

UINT uErrorCode=0;

IP_ADAPTER_INFO iai;

ULONG uSize = 0;

DWORD dwResult = GetAdaptersInfo( &iai, &uSize );

if( dwResult == ERROR_BUFFER_OVERFLOW )

{

IP_ADAPTER_INFO* piai=( IP_ADAPTER_INFO* )HeapAlloc( GetProcessHeap( ), 0, uSize );

if( piai != NULL )

1

{

dwResult = GetAdaptersInfo( piai, &uSize );

if( ERROR_SUCCESS == dwResult )

{

IP_ADAPTER_INFO* piai2 = piai;

while(piai2!=NULL &&(uSystemInfoLen+piai2->AddressLength )< 4096U)

{

CopyMemory(szSystemInfo+uSystemInfoLen,piai2->Address,

piai2->AddressLength );

uSystemInfoLen += piai2->AddressLength;

piai2 = piai2->Next;

}

}

else

2