Python中通过netifaces库获取本机网络接口的物理地址
发布时间:2024-01-13 18:33:31
netifaces是一个Python库,用于获取本机网络接口的信息,包括物理地址。下面是一个使用netifaces库获取本机网络接口物理地址的例子:
首先,我们需要安装netifaces库,可以使用以下命令安装:
pip install netifaces
下面是一个获取本机网络接口物理地址的示例代码:
import netifaces as ni
# 获取所有网络接口
interfaces = ni.interfaces()
# 遍历所有网络接口
for interface in interfaces:
# 获取网络接口的MAC地址
mac_addr = ni.ifaddresses(interface)[ni.AF_LINK][0]['addr']
# 打印接口名称和MAC地址
print(f'Interface: {interface}, MAC Address: {mac_addr}')
运行上述代码,您将获得类似以下输出:
Interface: lo, MAC Address: 00:00:00:00:00:00 Interface: eth0, MAC Address: 11:22:33:44:55:66 Interface: wlan0, MAC Address: aa:bb:cc:dd:ee:ff
接口"lo"是本地回环接口,常用于本地通信。接口"eth0"是有线网卡接口,而接口"wlan0"是无线网卡接口。相应的物理地址(MAC地址)是"00:00:00:00:00:00","11:22:33:44:55:66"和"aa:bb:cc:dd:ee:ff"。
请注意,该代码只能在Linux或Mac系统上运行。在Windows系统上,您需要安装PyWin32库,并使用以下代码替换获取MAC地址的部分:
import wmi
# 连接到WMI服务
wmi_obj = wmi.WMI()
# 获取网络接口信息
network_configs = wmi_obj.Win32_NetworkAdapterConfiguration(IPEnabled=True)
# 遍历所有网络接口
for network_config in network_configs:
# 获取MAC地址
mac_addr = network_config.MACAddress
# 打印接口名称和MAC地址
print(f'Interface: {network_config.Description}, MAC Address: {mac_addr}')
这是一个适用于Windows系统的示例,使用了PyWin32库来连接到WMI服务并获取网络接口信息。请确保在运行代码之前已安装PyWin32库。
使用netifaces库可以方便地获取本机网络接口的物理地址。在实际应用中,您可以将这些信息用于识别设备或控制网络访问权限等。
