Display addresses assigned to network interfaces using Python script.
Create a Python script using psutil
package to extract system information and rich
to pretty-print results.
#!/usr/bin/env python3 # Display IP addresses import socket import psutil from rich import print net_if_stats = psutil.net_if_stats() previous_interface = "" for interface, snicaddrs in psutil.net_if_addrs().items(): for snicaddr in snicaddrs: if snicaddr.family in [socket.AF_INET, socket.AF_INET6]: if(previous_interface != interface): if net_if_stats[interface].isup == True: interface_color = "green" else: interface_color = "red" print() print("[bold %s]%s" % (interface_color, interface)) print(" [italic white]%-8s [deep_sky_blue1]%s\n [deep_sky_blue4]%s" % (str(snicaddr.family).split(';.';)[-1], snicaddr.address, snicaddr.netmask)) previous_interface = interface
Execute Python script to display system information.
$ ips.py lo AF_INET 127.0.0.1 255.0.0.0 AF_INET6 ::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff eno1 AF_INET 10.10.10.254 255.255.0.0 virbr0 AF_INET 192.168.122.1 255.255.255.0 docker_gwbridge AF_INET 172.18.0.1 255.255.0.0 br-55e2ff3280e8 AF_INET 172.19.0.1 255.255.0.0 docker0 AF_INET 172.17.0.1 255.255.0.0 AF_INET6 fe80::42:c4ff:fe06:6b6f%docker0 ffff:ffff:ffff:ffff:: br-7548b68c58a2 AF_INET 172.20.0.1 255.255.0.0 vboxnet0 AF_INET 1.2.3.1 255.255.255.0 AF_INET6 fe80::800:27ff:fe00:0%vboxnet0 ffff:ffff:ffff:ffff:: vboxnet4 AF_INET 172.16.0.1 255.255.255.0 AF_INET6 fe80::800:27ff:fe00:4%vboxnet4 ffff:ffff:ffff:ffff:: br-f8aa0e474ef0 AF_INET 172.21.0.1 255.255.0.0 AF_INET6 fe80::42:5dff:fe72:af9a%br-f8aa0e474ef0 ffff:ffff:ffff:ffff:: veth13bc976 AF_INET6 fe80::545d:c8ff:fe52:dfb4%veth13bc976 ffff:ffff:ffff:ffff:: veth2d3a932 AF_INET6 fe80::e87a:4aff:feec:2920%veth2d3a932 ffff:ffff:ffff:ffff:: veth5f0620b AF_INET6 fe80::e07c:e0ff:fe55:77f2%veth5f0620b ffff:ffff:ffff:ffff::
Compare it with system utilities.
$ ip -color --brief addr lo UNKNOWN 127.0.0.1/8 ::1/128 eno1 UP 10.10.10.254/16 virbr0 DOWN 192.168.122.1/24 docker_gwbridge DOWN 172.18.0.1/16 br-55e2ff3280e8 DOWN 172.19.0.1/16 docker0 UP 172.17.0.1/16 fe80::42:c4ff:fe06:6b6f/64 br-7548b68c58a2 DOWN 172.20.0.1/16 vboxnet0 DOWN 1.2.3.1/24 fe80::800:27ff:fe00:0/64 vboxnet1 DOWN vboxnet2 DOWN vboxnet3 DOWN vboxnet4 DOWN 172.16.0.1/24 fe80::800:27ff:fe00:4/64 vboxnet5 DOWN br-f8aa0e474ef0 UP 172.21.0.1/16 fe80::42:5dff:fe72:af9a/64 veth13bc976@if55 UP fe80::545d:c8ff:fe52:dfb4/64 veth2d3a932@if65 UP fe80::e87a:4aff:feec:2920/64
Interesting.