Display IPv4 address without network utilities.
Inspect /proc/net/fib_trie which contains routing table entries sorted by prefix length.
$ cat /proc/net/fib_trie
Main: +-- 0.0.0.0/0 3 0 4 |-- 0.0.0.0 /0 universe UNICAST +-- 127.0.0.0/8 2 0 2 +-- 127.0.0.0/31 1 0 0 |-- 127.0.0.0 /8 host LOCAL |-- 127.0.0.1 /32 host LOCAL |-- 127.255.255.255 /32 link BROADCAST +-- 168.0.0.0/5 2 0 2 |-- 169.254.0.0 /16 link UNICAST +-- 172.16.0.0/15 3 0 4 +-- 172.16.144.0/21 2 0 2 |-- 172.16.144.0 /21 link UNICAST +-- 172.16.151.192/26 2 0 2 |-- 172.16.151.200 /32 host LOCAL |-- 172.16.151.255 /32 link BROADCAST +-- 172.16.238.0/23 3 0 4 +-- 172.16.238.0/31 1 0 0 |-- 172.16.238.0 /24 link UNICAST |-- 172.16.238.1 /32 host LOCAL |-- 172.16.238.255 /32 link BROADCAST +-- 172.16.239.0/31 1 0 0 |-- 172.16.239.0 /24 link UNICAST |-- 172.16.239.1 /32 host LOCAL |-- 172.16.239.255 /32 link BROADCAST +-- 172.17.0.0/31 1 0 0 |-- 172.17.0.0 /16 link UNICAST |-- 172.17.0.1 /32 host LOCAL |-- 172.17.255.255 /32 link BROADCAST +-- 192.168.96.0/20 2 0 2 +-- 192.168.96.0/31 1 0 0 |-- 192.168.96.0 /20 link UNICAST |-- 192.168.96.1 /32 host LOCAL |-- 192.168.111.255 /32 link BROADCAST Local: +-- 0.0.0.0/0 3 0 4 |-- 0.0.0.0 /0 universe UNICAST +-- 127.0.0.0/8 2 0 2 +-- 127.0.0.0/31 1 0 0 |-- 127.0.0.0 /8 host LOCAL |-- 127.0.0.1 /32 host LOCAL |-- 127.255.255.255 /32 link BROADCAST +-- 168.0.0.0/5 2 0 2 |-- 169.254.0.0 /16 link UNICAST +-- 172.16.0.0/15 3 0 4 +-- 172.16.144.0/21 2 0 2 |-- 172.16.144.0 /21 link UNICAST +-- 172.16.151.192/26 2 0 2 |-- 172.16.151.200 /32 host LOCAL |-- 172.16.151.255 /32 link BROADCAST +-- 172.16.238.0/23 3 0 4 +-- 172.16.238.0/31 1 0 0 |-- 172.16.238.0 /24 link UNICAST |-- 172.16.238.1 /32 host LOCAL |-- 172.16.238.255 /32 link BROADCAST +-- 172.16.239.0/31 1 0 0 |-- 172.16.239.0 /24 link UNICAST |-- 172.16.239.1 /32 host LOCAL |-- 172.16.239.255 /32 link BROADCAST +-- 172.17.0.0/31 1 0 0 |-- 172.17.0.0 /16 link UNICAST |-- 172.17.0.1 /32 host LOCAL |-- 172.17.255.255 /32 link BROADCAST +-- 192.168.96.0/20 2 0 2 +-- 192.168.96.0/31 1 0 0 |-- 192.168.96.0 /20 link UNICAST |-- 192.168.96.1 /32 host LOCAL |-- 192.168.111.255 /32 link BROADCAST
Extract IPv4 addresses.
$ cat /proc/net/fib_trie | grep -B 1 "/32 host LOCAL" | awk '/\|--/ {print $NF}' | sort -u
127.0.0.1 172.16.151.200 172.16.238.1 172.16.239.1 172.17.0.1 192.168.96.1
Use standard network utility for comparison.
$ ip --brief --color addr lo UNKNOWN 127.0.0.1/8 ::1/128 enp3s0 UP 172.16.151.200/21 fe80::b0d:5d9a:7083:fced/64 wlp4s0 DOWN br-6db1c7bd17a8 DOWN 172.16.238.1/24 docker0 UP 172.17.0.1/16 fe80::42:faff:fe5c:c85e/64 br-b06cc51fd3a7 DOWN 172.16.239.1/24 br-b2f1f097b8f8 DOWN 192.168.96.1/20 veth0e65cfc@if8 UP fe80::1438:9bff:fec6:120a/64 vethfc6c557@if10 UP fe80::282d:f2ff:fe2c:9dee/64
This can be useful in containerized environment when ip
utility is not available.