zoukankan      html  css  js  c++  java
  • VC/C获取MAC地址

    #include <winsock2.h>
    #include <Iphlpapi.h>
    #include <stdio.h>
     
    void byte2Hex(unsigned char bData,unsigned char hex[])
    {
        int  high=bData/16,low =bData ;
        hex[0]  = (high <10)?('0'+high):('A'+high-10);
        hex[1]  = (low <10)?('0'+low):('A'+low-10);
    }
     
    int getLocalMac(unsigned char *mac) // 获取本机MAC地址
    {
        ULONG  ulSize=0;
        PIP_ADAPTER_INFO  pInfo=NULL;
        int  temp=0;
        temp  = GetAdaptersInfo(pInfo,&ulSize);//第一次调用,获取缓冲区大小
        pInfo=(PIP_ADAPTER_INFO)malloc(ulSize);
        temp  = GetAdaptersInfo(pInfo,&ulSize);
     
        int  iCount=0;
        while( pInfo)//遍历每一张网卡
        {
            //   pInfo->Address  是MAC地址
            for(int  i=0;i<(int)pInfo->AddressLength;i++)
            {
                byte2Hex(pInfo->Address[i],&mac[iCount]);
                iCount+=2;
                if(i<(int)pInfo->AddressLength-1)
                {
                    mac[iCount++]  = ':';
                }else
                {
                    mac[iCount++]  = '#';
                }
            }
            pInfo  = pInfo->Next;
        }
     
        if(iCount  >0)
        {
            mac[--iCount]='\0';
            return  iCount;
        }
        else  return -1;
    }
     
    int main(int argc, char* argv[])
    {
        unsigned  char address[1024];
        if(getLocalMac(address)>0)
        {
            printf("mac-%s\n",address);
        }else
        {
            printf("invoke  getMAC error!\n");
        }
        return  0;
    }
  • 相关阅读:
    javaWeb学习总结——文件上传、下载
    基于JDK1.8的JVM 内存结构【JVM篇三】
    Mybatis分页插件PageHelper的学习与使用
    使用IntelliJ IDEA创建第一个Mawen项目
    SpringMVC参数绑定学习总结【前后端数据参数传递】
    【2013年】开发常见问题回顾(一)
    Asp.Net统一前后端提示信息方案
    pip的安装以及binascii报错问题
    win32程序一个简单的计算器
    uva815洪水问题
  • 原文地址:https://www.cnblogs.com/snailrun/p/2644882.html
Copyright © 2011-2022 走看看