zoukankan      html  css  js  c++  java
  • 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) ? '' : '-');
                        strMac.append(szTmp);
                    }
                    vRet.push_back(strMac);
                }
                pAdapterInfo = pAdapterInfo->Next;
            } while (pAdapterInfo);
        }
    
        if (pAdapterInfoBkp)
            delete pAdapterInfoBkp;
    
        return vRet;
    }

    常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。

    昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
  • 相关阅读:
    NewtonSoft.Json
    属性
    csv文件
    C#和递归算法实现删除,清空,拷贝目录
    朴素贝叶斯应用:垃圾邮件分类
    压缩图片
    numpy分布图
    鸢尾花
    numpy数组及处理:效率对比
    完整的中英文词频统计
  • 原文地址:https://www.cnblogs.com/htj10/p/13830548.html
Copyright © 2011-2022 走看看