📅  最后修改于: 2023-12-03 15:22:20.289000             🧑  作者: Mango
MAC地址,又称物理地址,是用于识别网络上设备的唯一标识符。通常呈现为六组16进制数。
使用Python提取MAC地址非常容易。本文将介绍三种方法。
使用正则表达式,可以从字符串中提取MAC地址。
import re
string = "Device with MAC address 00:11:22:33:44:55"
pattern = r"([\dA-Fa-f]{2}[:]?){6}"
result = re.search(pattern, string).group(0)
print(result)
这个例子使用正则表达式寻找其中的MAC地址。代码使用了Python的re模块,它包含各种与正则表达式相关的方法。
输出为:00:11:22:33:44:55
。
netifaces是Python的一个库,可以很容易地获取系统上的网络接口信息和地址,包括MAC地址。
import netifaces
interfaces = netifaces.interfaces()
for interface in interfaces:
try:
mac = netifaces.ifaddresses(interface)[netifaces.AF_LINK][0]['addr']
print(f"Interface '{interface}' has MAC address '{mac}'.")
except KeyError:
print(f"No MAC address found for interface '{interface}'.")
这个例子使用了netifaces库,它首先找到系统上的接口,然后获取每个接口的MAC地址。
输出为类似下面的内容:
Interface 'lo' has MAC address '00:00:00:00:00:00'.
Interface 'eth0' has MAC address '12:34:56:78:9a:bc'.
No MAC address found for interface 'wlan0'.
psutil是一个跨平台的库,可以检索系统信息。它可以很容易地获取网络接口和相关的MAC地址。
import psutil
nic_info = psutil.net_if_addrs()
for interface in nic_info.keys():
for address in nic_info[interface]:
if str(address.family) == 'AddressFamily.AF_LINK':
print(f"Interface '{interface}' has MAC address '{address.address}'.")
这个例子使用了psutil库,它首先找到系统上的接口,然后获取每个接口的MAC地址。
输出为类似下面的内容:
Interface 'lo' has MAC address '00:00:00:00:00:00'.
Interface 'docker0' has MAC address '02:42:d7:19:23:3a'.
No MAC address found for interface 'wlan0'.
以上是三种常见的提取MAC地址的方法。选取最适合自己项目的方法即可。