Python中通过netifaces库获取本机网络接口的IP地址和MAC地址
发布时间:2024-01-13 18:28:52
在Python中,可以使用netifaces库来获取本机的网络接口信息,包括IP地址和MAC地址。
首先,确保已经安装了netifaces库。如果没有安装,可以使用以下命令来安装:
pip install netifaces
接下来,我们通过一个使用netifaces库的示例来演示如何获取本机网络接口的IP地址和MAC地址。
import netifaces as ni
# 获取所有网络接口的信息
interfaces = ni.interfaces()
for interface in interfaces:
print(f'Interface: {interface}')
# 获取该接口的IPv4地址
if 'AF_INET' in ni.ifaddresses(interface):
ip = ni.ifaddresses(interface)['AF_INET'][0]['addr']
print(f'IPv4 address: {ip}')
# 获取该接口的MAC地址
if 'addr' in ni.ifaddresses(interface)[ni.AF_LINK][0]:
mac = ni.ifaddresses(interface)[ni.AF_LINK][0]['addr']
print(f'MAC address: {mac}')
print('---')
该示例首先使用ni.interfaces()函数获取所有网络接口的名称,并将名称保存在interfaces变量中。然后,通过遍历接口名称的方式,逐个获取每个接口的信息。
对于每个接口,我们首先使用ni.ifaddresses()函数获取接口的所有地址信息,并根据地址类型进行判断。在本例中,我们只关注IPv4地址和MAC地址。
对于IPv4地址,我们可以使用ni.ifaddresses(interface)['AF_INET'][0]['addr']来获取。其中,AF_INET表示IPv4地址类型,[0]表示 个地址(通常情况下只有一个IPv4地址),'addr'表示具体的地址。
对于MAC地址,我们可以使用ni.ifaddresses(interface)[ni.AF_LINK][0]['addr']来获取。其中,ni.AF_LINK表示MAC地址类型。
最后,我们打印出每个接口的名称、IPv4地址和MAC地址,并使用---来分隔不同接口的信息。
通过运行上述示例代码,我们可以获取到本机每个网络接口的IPv4地址和MAC地址。注意,不同的操作系统和网络配置可能会有所不同,因此具体的输出结果可能会有所差异。
希望上述示例能帮助你通过netifaces库获取本机网络接口的IP地址和MAC地址。
