如何獲取網卡MAC地址(或相關信息)

好多方法,比較全的是《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;
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章