Afficher toutes les interfaces réseau et leur adresse IP v4 correspondante

Voici un script qui permet d'afficher les adresses IP (v4) de toutes les interfaces réseau installées sur la machine.

Exécution :

./getInetAddr.sh 
eth0       ==>     10.33.43.10
lo         ==>       127.0.0.1
wlan0      ==>     172.22.8.35

Ce script est disponible en téléchargement ici .

Egalement disponible via GIT :

$ git clone http://git.quennec.fr/ronan/scripts_pub.git

Détail du script commenté :

#!/bin/bash
 
# Ce script retourne l'adresse IP
# de chaque interface réseau trouvée
 
# Pour le debuggage
#set -x
 
# Initialisation de la variable PATH
PATH="/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
 
# Nom du script
BASE=`basename $0`
# Le répertoire du script
DIR=`dirname $0`
 
# On boucle sur toutes les différentes interfaces trouvées
for I in `\
# On exécute la commande ifconfig
ifconfig | \
# On récupère le nom des différentes interfaces
# Le nom des interfaces se trouve dans la première
# colonne des informations retournées par la commande ifconfig
cut -d' ' -f1 | \
# On supprime toutes les lignes vides
sed -e '/^$/d'`; do
# On affecte à la variable J l'adresse IP correspondante
# à l'interface en cours de traitement par la boucle I
J=$(\
# On exécute la commande ifconfig pour l\'interface
# en cours de traitement par la boucle I
ifconfig $I | \
# On récupère la partie contenant l\'adresse IP
grep -E -o 'inet add?r:([0-9]{1,3}\.){3}[0-9]{1,3}' | \
# On concerve uniquement la partie IP
cut -d':' -f2 \
# On affiche le résultat
# sous la forme nomInterface ==> adresseIp
) && printf "%-10s ==> %15s\n" $I $J
done
 
# On quitte le script
exit 0
Etiquettes: