如何获取MAC地址?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

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

有没有人知道一个跨平台的方法(Windows和Linux)获取MAC地址的方法?如果没有,那么有人会知道我上面列出的更优雅的方法吗?

提问于
用户回答回答于

Python2.5包括一个UUID实现,它(至少在一个版本中)需要Mac地址。你可以轻松地将mac查找函数导入你自己的代码中:

from uuid import getnode as get_mac
mac = get_mac()

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

用户回答回答于

在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')

扫码关注云+社区