永发信息网

VC中真实MAC地址的获取方法

答案:2  悬赏:80  手机版
解决时间 2021-02-01 09:49
VC中真实MAC地址的获取方法
最佳答案
#include "stdafx.h"
#include 
//#include 
#include 
#include 
 
#pragma comment ( lib, "iphlpapi.lib" ) 
 
BOOL WINAPI GetPhyMacAddress(char* strServiceName)
{
    BOOL    bRet                = FALSE;
    char    pstrBuf[512];
    sprintf(pstrBuf, "//./%s", strServiceName);
 
    HANDLE 
 hDev    = CreateFile(pstrBuf, GENERIC_READ | GENERIC_WRITE, 
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
    if ( hDev != INVALID_HANDLE_VALUE )
    {
        int     inBuf;
        BYTE    outBuf[256] = { 0 };
        DWORD   BytesReturned;
        inBuf   = OID_802_3_PERMANENT_ADDRESS;
 
        if ( DeviceIoControl(hDev, IOCTL_NDIS_QUERY_GLOBAL_STATS, (LPVOID)&inBuf, 4, outBuf, 256, &BytesReturned, NULL) )
        {
            sprintf(pstrBuf, "物理mac:%02X-%02X-%02X-%02X-%02X-%02X
",
                outBuf[0], outBuf[1], outBuf[2], outBuf[3], outBuf[4], outBuf[5]);
            printf(pstrBuf);
            bRet    = TRUE;
        }
 
        inBuf   = OID_802_3_CURRENT_ADDRESS;
        if ( DeviceIoControl(hDev, IOCTL_NDIS_QUERY_GLOBAL_STATS, (LPVOID)&inBuf, 4, outBuf, 256, &BytesReturned, NULL) )
        {
            sprintf(pstrBuf, "当前mac:%02X-%02X-%02X-%02X-%02X-%02X
",
                outBuf[0], outBuf[1], outBuf[2], outBuf[3], outBuf[4], outBuf[5]);
            printf(pstrBuf);
            bRet    = TRUE;
        }
        CloseHandle(hDev);
    }
    return bRet;
}
 
//  网卡 MAC 地址
BOOL GetMacAddress()
{
    UINT            uErrorCode  = 0;
    IP_ADAPTER_INFO iai;
    ULONG           uSize       = 0;
    DWORD           dwResult    = GetAdaptersInfo(&iai, &uSize);
 
    if ( dwResult == ERROR_BUFFER_OVERFLOW )
    {
        PIP_ADAPTER_INFO    piai    = (PIP_ADAPTER_INFO)new BYTE[uSize];
        dwResult    = GetAdaptersInfo(piai, &uSize);
        if ( ERROR_SUCCESS == dwResult )
        {
            while ( piai )
            {
                printf("名称:%s
", piai->AdapterName);
                printf("描述:%s
", piai->Description);
                printf("类型:%d
", piai->Type);
                GetPhyMacAddress(piai->AdapterName);
                printf("
");
                piai = piai->Next;
            }
        }
        delete[] piai;
    }
    return TRUE;
}
全部回答
开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。即可看到MAC地址。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
4,7英寸红米手机型号2014501多少钱
中医的“望、闻、问、切“指什么
愆期的意思是什么啊?知道的请说下!
My father worked for the IBM Company in th
手抓饼的面饼怎么做?有知道的请教一下,用什
二年级的小朋友老师要求买哪些辅导书
台湾人对这次帝吧爆他们的吧什么感受
cbb75uf和cd75uf电容有什么区别
下列关于包装物计税规定的表述,正确的有( )
福田奥铃4米2故障打不着火
请问一台电脑一天只能开通一个新浪博客吗???
克削的意思是什么啊?知道的请说下!
cnp去黑头鼻贴和猪鼻贴哪种好
局部放大图的标注中,若被放大的部分有几个,
弯弯进 台湾有啥牌子的香烟比较好抽 香烟贵不
推荐资讯
我是乡村小学老师,今年27岁,2009年开始上班
汽轮机为什么要带低负荷运行一段时间后再做超
六月十八日是什么星座,6月18日是什么星座
在做Jacobi迭代式得到的迭代矩阵谱半径为1,问
久保田农业机械(苏州)有限公司的联系电话谁知
淘宝付款说不支持农商银行卡
平行四边形ABCD中,DE垂直于AB与E,BF垂直于AD
亢扞的意思是什么啊?知道的请说下!
城市公交准载多少人
石犷的意思是什么啊?知道的请说下!
微星主板b15跟因特尔i5适用吗
摩托车低音炮同事买了个5寸左右的低音炮装在
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?