Outils pour utilisateurs

Outils du site


liste_ip

lister les IP des interfaces réseau

Quand on liste les IP réseau d'un poste de travail, ça donne quelque chose d'assez touffu

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:90:f5:fa:ed:37 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.12/24 brd 192.168.0.255 scope global dynamic noprefixroute enp3s0f1
       valid_lft 37078sec preferred_lft 37078sec
    inet6 2a04:e0a5:9ad2:9730:b8e5:b2ae:d0c9:8345/64 scope global temporary dynamic 
       valid_lft 86192sec preferred_lft 80139sec
    inet6 2a04:e0a5:9ad2:9730:ee7e:9d31:c155:6dd2/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86192sec preferred_lft 86192sec
    inet6 fe80::e594:c5d7:1943:147c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether ac:7b:a1:3f:5d:e5 brd ff:ff:ff:ff:ff:ff

il suffit de passer une moulinette avec sed et des regex pour éclaircir le tout

# ip a | sed -nE "s/(^[0-9]:\s*(.*:).*)/\2/p;s/(\s*inet6?\s([0-9a-zA-Z:\/\.]*).*)/\t\2/p"
lo:
	127.0.0.1/8
	::1/128
enp3s0f1:
	192.168.0.12/24
	2a04:e0a5:9ad2:9730:b8e5:b2ae:d0c9:8345/64
	2a04:e0a5:9ad2:9730:ee7e:9d31:c155:6dd2/64
	fe80::e594:c5d7:1943:147c/64
wlp2s0:

On peut facilement faire un script

# cat > /usr/local/bin/lsip
#!/bin/bash
ip a | sed -nE "s/(^[0-9]:\s*(.*:).*)/\2/p;s/(\s*inet6?\s([0-9a-zA-Z:\/\.]*).*)/\t\2/p"

# chmod +x /usr/local/bin/lsip

on tape ensuite un simple lsip pour obtenir le résultat

liste_ip.txt · Dernière modification : 2024/04/12 22:42 de thierry