获取MAC地址

2018-06-17 23:26:11来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

实例代码:

#include <Windows.h>
#include <iphlpapi.h>
#include <list>
#include <string>
#pragma comment(lib, "Iphlpapi.lib")

std::list<std::string> GetMACs()
{
	std::list<std::string> lst;

	ULONG ulSize = 0;
	::GetAdaptersInfo(nullptr, &ulSize);
	
	if (ulSize == 0) return lst;

	PIP_ADAPTER_INFO pInfo = (PIP_ADAPTER_INFO)malloc(ulSize);
	if (::GetAdaptersInfo(pInfo, &ulSize) != ERROR_SUCCESS)
	{
		free(pInfo);
		return lst;
	}

	PIP_ADAPTER_INFO pNext = pInfo;
	while (pNext != nullptr)
	{
		std::string mac;
		char tmp[10];
		for (int i = 0; i < (int)pNext->AddressLength; i++)
		{
			sprintf_s(tmp, "%02X-", pNext->Address[i]);
			mac += tmp;
		}
		if (!mac.empty())
		{
			mac.pop_back();
			lst.emplace_back(std::move(mac));
		}
		pNext = pNext->Next;
	}

	free(pInfo);

	return lst;
}

int main()
{
	GetMACs();
    return 0;
}

  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:enote笔记法使用范例(2)——指针(1)智能指针

下一篇:C++的内存泄漏检测【转载】