Ubuntu : 3 manières de trouver son adresse IP en ligne de commande
Différences entre "ifconfig", "ip a" et "hostname -I"
Il existe différentes manières de connaitre son adresse IP quand on utilise Ubuntu sur ordinateur ou sur serveur. Cette information peut être utile pour solutionner un problème de réseau ou pour se connecter à une ressource sur un réseau local, vers un service cloud, etc. Ici, c’est l’adresse IP locale qui nous intéresse, que ce soit dans un réseau d’entreprise ou derrière une simple box internet.
Une connexion par câble réseau ou en sans-fil Wifi, dans les deux cas une adresse IP est attribuée à l’ordinateur. Sur Ubuntu, cette information peut être relevée à distance par SSH. Ce sera donc principalement utile pour les administrateurs de réseau d’entreprise
D’après la doc officielle Ubuntu, le traditionnel « ifconfig » a été remplacé par « ip a » dans les dernières versions. Les informations affichées ne sont pas les mêmes, il faudra donc adapter selon ce que vous voulez collecter : adresse IP, adresse MAC, passerelle, MTU, taux d’erreur, etc.
Classique mais obsolète : ifconfig
Exemple de résultat avec ifconfig :
windowsfacile@windowsfacile:~$ ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.68.129 netmask 255.255.255.0 broadcast 192.168.68.255 inet6 fe80::3851:d1c5:4fcc:781c prefixlen 64 scopeid 0x20<link> ether 00:0c:29:7c:17:4c txqueuelen 1000 (Ethernet) RX packets 9821 bytes 14045736 (14.0 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2039 bytes 233747 (233.7 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Boucle locale) RX packets 251 bytes 25480 (25.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 251 bytes 25480 (25.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Le nouveau : ip a
Exemple de résultat avec ip a, qui remplace ifconfig, complet lui aussi :
windowsfacile@windowsfacile:~$ 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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:7c:17:4c brd ff:ff:ff:ff:ff:ff altname enp2s1 inet 192.168.68.129/24 brd 192.168.68.255 scope global dynamic noprefixroute ens33 valid_lft 1511sec preferred_lft 1511sec inet6 fe80::3851:d1c5:4fcc:781c/64 scope link noprefixroute valid_lft forever preferred_lft forever
L’alternative : hostname -I
Exemple de résultat avec hostname -I (c’est un « i » majuscule) :
windowsfacile@windowsfacile:~$ hostname -I 192.168.68.129
Difficile de faire plus succinct, c’est donc l’idéal pour ne pas être pollué avec d’autres informations dans le cas d’une collecte de données ou pour utiliser le résultat dans un script.