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

使用netifaces库在Python中查询并打印所有网络接口的IP地址信息

发布时间:2024-01-13 18:32:27

netifaces是一个Python库,用于查询和打印所有网络接口的IP地址信息。它提供了一种简单的方法来获取主机上可用的网络接口及其属性,例如IP地址、子网掩码、MAC地址等。下面是一个使用netifaces库进行查询和打印所有网络接口IP地址信息的示例。

首先,你需要安装netifaces库。你可以使用pip命令在命令行中安装它:

pip install netifaces

接下来,我们将在Python脚本中导入并使用netifaces库。下面是一个例子:

import netifaces

# 获取所有网络接口
interfaces = netifaces.interfaces()

# 遍历所有网络接口
for interface in interfaces:
    print(f"Interface: {interface}")
    
    # 获取接口的IP地址信息
    addresses = netifaces.ifaddresses(interface)
    
    # 打印接口的IPv4和IPv6地址信息
    if netifaces.AF_INET in addresses:
        ipv4_addresses = addresses[netifaces.AF_INET]
        for address in ipv4_addresses:
            print(f"IPv4 Address: {address['addr']}")
            
    if netifaces.AF_INET6 in addresses:
        ipv6_addresses = addresses[netifaces.AF_INET6]
        for address in ipv6_addresses:
            print(f"IPv6 Address: {address['addr']}")
            
    print("-------------------")

在这个例子中,我们首先使用netifaces.interfaces()函数获取主机上所有的网络接口。然后,我们使用netifaces.ifaddresses(interface)函数获取每个接口的IP地址信息。

接下来,我们遍历每个接口的IP地址信息,并检查是否有IPv4和IPv6地址。如果有,我们通过访问addresses[netifaces.AF_INET]addresses[netifaces.AF_INET6]来获取相应的IP地址列表。然后,我们遍历这些列表并打印每个IP地址。

示例输出可能如下所示:

Interface: lo
IPv4 Address: 127.0.0.1
IPv6 Address: ::1
-------------------
Interface: eth0
IPv4 Address: 192.168.1.100
IPv6 Address: fe80::a448:c2ff:fe25:4bcc
-------------------
...

这个例子将打印每个网络接口的名称,并在每个接口下打印IPv4和IPv6地址(如果可用)。你可以根据这个例子的基础上进一步扩展和修改代码,以满足你的特定需求。

总结起来,使用netifaces库在Python中查询和打印所有网络接口的IP地址信息,你需要:导入netifaces库、获取所有网络接口、遍历每个接口、获取接口的IP地址信息、打印接口的IPv4和IPv6地址信息。