寰智博客

  1. 首页
  2. 技术教程
  3. 正文

Linux c++ 获取本地MAC 地址

2019年8月6日 1601点热度 0人点赞 0条评论

很多时候我们需要获得服务器的本地mac 地址信息用作 服务器身份的鉴别。但是由于不同服务器上往往配置了多个虚拟网卡,这会导致获取mac 地址的时候出现错误。一种可行的方法是 先列举服务器上可能的网卡类型配置 ,如 eth,lo等,但是在遇到设备名称不规范的情况下还是会出现错误,这里提供一种可行的方案。利用python 的 uuid 获取设备的MAC 地址(此方案 摘自宝塔面板 public.py 文件),具体实现方法如下(可在 《Linux C++获取系统信息、Md5、Base64 类》中的demo 文件基础上 修改其中的 BT_Public.cpp 文件中的 GetLocalMac 函数)


    ofstream python("CpuMode.py");
    python << "import uuid"  << endl;
    python << "mac=uuid.UUID(int = uuid.getnode()).hex[-12:]" <<endl;
    python << "mac= \":\".join([mac[e:e+2] for e in range(0,11,2)])" << endl;
    // 必须把mac 地址写入到文本二次读入,不能使用print 会因为python 版本不同产生兼容问题                                                                        
    python << "f = open('mac.txt', 'w')"<<endl;
    python << "f.write(mac)"<<endl;
    python << "f.close()"<<endl;                                 
    python.close();
	
    system("python CpuMode.py");
    char _buff[1024];
    FILE *fp = fopen("mac.txt","r");
    fread(_buff,1024,1,fp);
    fclose(fp);
    string buff=_buff;
    buff=buff.substr(0,17);

    remove("mac.txt");
    remove("CpuMode.py");
    
    return buff;
标签: 暂无
最后更新:2019年8月6日

SudemQaQ

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2025 blog.szhcloud.cn 寰智博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

苏ICP备16064625号-1

本站使用 又拍云 Logo 提供CDN加速/云存储服务