在 Python 中获取 MAC 地址可以使用 uuid
模块中的 getnode()
函数。以下是一段示例代码:
import uuid
def get_mac_address():
mac_num = hex(uuid.getnode()).replace('0x', '').upper()
mac = '-'.join(mac_num[i: i + 2] for i in range(0, 11, 2))
return mac
print(get_mac_address())
在这段代码中,uuid.getnode()
返回一个长整数,这是主机的 MAC 地址。hex()
函数将这个长整数转换为十六进制字符串,然后使用字符串操作来添加分隔符,并将其转换为标准 MAC 地址格式。
请注意,如果计算机有多个网络接口(例如有线和无线),则该方法可能返回任何一个接口的 MAC 地址。同时,如果 Python 程序运行在某些类型的虚拟机或容器中,可能会返回虚拟网络接口的 MAC 地址。
如果你需要获取特定网络接口的 MAC 地址,你可能需要使用更复杂的方法,例如使用操作系统命令或者第三方库,如psutil
或 netifaces
。
例如,使用 netifaces
库的代码可能如下:
import netifaces as nif
def get_mac_address(interface):
return nif.ifaddresses(interface)[nif.AF_LINK][0]['addr']
print(get_mac_address('eth0')) # 你可以替换 'eth0' 为你的网络接口名称
注意这些代码可能需要相应权限才能正确运行。