欢迎访问宙启技术站
智能推送

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库可以方便地获取本机网络接口的物理地址。在实际应用中,您可以将这些信息用于识别设备或控制网络访问权限等。