好多方法,比較全的是《xxxx的四種方法》
這裏記錄一個最簡單的方法,留着備用:
#include <Iphlpapi.h>
#pragma comment(lib,"Iphlpapi.lib") //需要添加Iphlpapi.lib庫
#include <vector>
void GetMacsInfo(std::vector<CString>& vMac)
{
DWORD dwSize = 0;
ULONG nRet = GetAdaptersInfo(NULL, &dwSize);
if (nRet == ERROR_BUFFER_OVERFLOW)
{
BYTE* pBuffer = new BYTE[dwSize];
IP_ADAPTER_INFO* p = (IP_ADAPTER_INFO*)pBuffer;
nRet = GetAdaptersInfo(p, &dwSize);
if (nRet == ERROR_SUCCESS)
{
do
{
CString sMac;
for (UINT i = 0; i < p->AddressLength; ++i)
sMac.AppendFormat(_T("%02X-"), p->Address[i]);
sMac.TrimRight(_T('-'));
vMac.push_back(sMac);
p = p->Next;
}
while (p);
}
delete [] pBuffer;
}
}