Python windows下获取MAC地址的一种方法(转)
来源:互联网 发布:淘宝抠图出来衣服 编辑:程序博客网 时间:2024/05/21 18:22
我最近有一个项目,使用Python在win32下开发一个COM组建,该COM组建其中一个方法是获取本地电脑的MAC地址。
需求很简单,虽然我是Python新手中的新手,但我还是会使用搜索引擎进行搜索。
百度一下,发现大部分都介绍使用import UUID获取MAC地址,或使用os.popen("ipconfig /all")的方式获取。而后者容易受到操作系统中英文环境影响。
如这篇文章:http://www.cnblogs.com/Jerryshome/archive/2011/11/30/2269365.html
所以,我很乖的使用了被大部分网页推荐的第一种方法,
def get_mac_address(): import uuid node = uuid.getnode() mac = uuid.UUID(int = node).hex[-12:] return mac
很幸运,直接能用。
然后用C++编写一个访问COM的程序。
但问题来了(我不会问学挖掘机哪家强的-_-///)
居然弹出C RUNTIME Error!!
---------------------------Microsoft Visual C++ Runtime Library---------------------------Runtime Error!Program: E:\Blender Foundation\blender.exeR6034An application has made an attempt to load the C runtime library incorrectly.Please contact the application's support team for more information.
虽然功能能正常使用,但老是弹出这个对话框很不爽!
WINXP/WIN7 32位均出现该问题!!
经过一通科学上网,在如下网页发现:
https://developer.blender.org/T27666
导入UUID后,被C/C++等程序调用PYTHON程序,均会提示该问题,该bug未fixed掉,目前未有好的解决方案。原因是:ctypes loads wrong version of C runtime, leading to error message box from system
官网的buglist为:http://bugs.python.org/issue17213
OK,居然官网都没法解决,那只能换种方法了。
有经过一轮科学上网后,找到netifaces库,该方法和UUID一样,能通用的获取MAC地址。
库地址:https://pypi.python.org/pypi/netifaces
里面有相关教程,很简单,我贴出我写的demo程序,如下:
def networkinfo(self): import netifaces devlist = [] tempList = [] tmpdict = {} devices = netifaces.interfaces() for dev in devices: devlist.append(dev) for devinfo in devlist: infos = netifaces.ifaddresses(devinfo) if len(infos) < 2: continue ip = infos[netifaces.AF_INET][0]['addr'] if ip != '': if ip != '127.0.0.1': tmpdict["ip"] = ip tmpdict["mac"] = infos[netifaces.AF_LINK][0]['addr'] break tempList.append(tmpdict) return tempList
我这里获取了本地电脑的网络IP和该IP的网卡MAC地址。细节不做介绍了,大家可以看官网介绍。
- Python windows下获取MAC地址的一种方法(转)
- windows下获取MAC地址的三种方法
- Windows下获取本机MAC地址的方法
- windows下获取mac地址的两种方法
- android6.0获取wifi mac地址的一种方法
- Windows中获取MAC地址的几种方法 (转)
- windows及Linux系统下获取IP及MAC地址的方法
- Windows下获取本机MAC地址(网络适配器)方法介绍
- 获取MAC地址的两种方法,一种可以跨vlan取得MAC
- windows 平台下获取网卡的Mac地址
- Windows中获取MAC地址的几种方法
- Windows中获取MAC地址的几种方法
- Windows中获取MAC地址的几种方法
- windows、liunx 下获取mac地址
- 获取mac地址的方法
- wince下获取mac地址的简单方法!
- wince下获取mac地址的简单方法!
- wince下获取mac地址的简单方法!
- jQuery Mobile 表单基础
- HTML5 表单新增元素与属性
- 什么是身份管理
- 匈牙利算法来找最多的没有弱化的!!!!但是初始化那块不知道为什么换了个地方就re。。。尴尬
- HDU 5728 PowMod
- Python windows下获取MAC地址的一种方法(转)
- HDU 5729 Rigid Frameworks (from: 2016 Multi-University Training Contest)
- Reference Or Value pass in python
- C++不是类型安全的语言
- javascript jquery對form元素的常見操作
- sun.misc.unsafe类的使用
- 【杭电1862】excel排序
- Oracle常见错误:ORA-01403 的根本原因和解决方案
- [软件设计] 控制反转(Inversion of Control)随想