python读取mac地址_python - 获取MAC地址

python - 获取MAC地址

我需要一种在运行时确定计算机MAC地址的跨平台方法。 对于Windows,可以使用'wmi'模块,我可以找到Linux下唯一的方法是运行ifconfig并在其输出中运行正则表达式。 我不喜欢使用只能在一个操作系统上运行的软件包,而解析另一个程序的输出似乎并不优雅,更不用说容易出错了。

有谁知道跨平台方法(windows和linux)方法来获取MAC地址? 如果没有,有没有人知道比我上面列出的更优雅的方法?

13个解决方案

141 votes

Python 2.5包含一个uuid实现(至少在一个版本中)需要mac地址。 您可以轻松地将mac查找功能导入到您自己的代码中:

from uuid import getnode as get_mac

mac = get_mac()

返回值是mac地址为48位整数。

Armin Ronacher answered 2019-08-06T23:34:44Z

77 votes

Linux下用于解决此问题的纯python解决方案,用于获取特定本地接口的MAC,最初由vishnubob发布为评论,并在此活动状态配方中由Ben Mackey改进

#!/usr/bin/python

import fcntl, socket, struct

def getHwAddr(ifname):

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

info = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', ifname[:15]))

return ':'.join(['%02x' % ord(char) for char in info[18:24]])

print getHwAddr('eth0')

synthesizerpatel answered 2019-08-06T23:35:09Z

26 votes

netifaces是一个很好的模块,用于获取mac地址(和其他地址)。 它是跨平台的,比使用socket或uuid更有意义。

>>> import netifaces

>>> netifaces.interfaces()

['lo', 'eth0', 'tun2']

>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值