VC获取mac地址
MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。
vc获取mac地址(参考:http://blog.okbase.net/JO2000/archive/642.html)
#include <atlbase.h> #include <atlconv.h> #include <string> #include <vector> #include <iphlpapi.h> using namespace std; #pragma comment(lib,"Iphlpapi.lib") std::vector<std::string> GetMac() { std::vector<std::string> vRet; ULONG ulAdapterInfoSize = sizeof(IP_ADAPTER_INFO); IP_ADAPTER_INFO *pAdapterInfoBkp = NULL, *pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize]; if (GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_BUFFER_OVERFLOW) // 缓冲区不够大 { delete pAdapterInfo; pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize]; pAdapterInfoBkp = pAdapterInfo; } if (GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == NO_ERROR) { do{ // 遍历所有适配器 if (pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET) // 判断是否为以太网, 以太网适配器是 6 无线局域网适配器是 71 { // pAdapterInfo->Description 是适配器描述 // pAdapterInfo->AdapterName 是适配器名称 string strMac; for (UINT i = 0; i < pAdapterInfo->AddressLength; i++) { char szTmp[8]; sprintf(szTmp, "%02X%c", pAdapterInfo->Address[i], (i == pAdapterInfo->AddressLength - 1) ? '\0' : '-'); strMac.append(szTmp); } vRet.push_back(strMac); } pAdapterInfo = pAdapterInfo->Next; } while (pAdapterInfo); } if (pAdapterInfoBkp) delete pAdapterInfoBkp; return vRet; }
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。