Avoir l'état des cartes réseaux sans programme externe

Sans utiliser les commandes classiques (ip, le NetworkManager, etc.), il reste possible d’avoir l’état de ses cartes réseau. Utile notamment en shell de secours ou autres environnements limités. Voire script.

cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:3612535985016 1504871864    0    0    0     0          0         0 3612535985016 1504871864    0    0    0     0       0          0
  eth0:7018766441878 6754565612    0 4507    0   577          0 258427669 7457131069430 7742050090    0    1    0     0       0          0
  eth1:45188287103 531585456    0    0    0     0          0 259548075        0       0    0    0    0     0       0          0
  eth2:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth3:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
 bond0:7063954728981 7286151068    0 4507    0   577          0 517975744 7457131069430 7742050090    0    1    0     0       0          0

Si on veut extraire les statistiques plus facilement via script, il vaut mieux se tourner vers les fichiers présents dans /sys/class/net/*/statistics/.

Exemples (avec commandes bonus) :

$ grep "" /sys/class/net/*/carrier
/sys/class/net/bond0/carrier:1
/sys/class/net/eth0/carrier:1
/sys/class/net/eth1/carrier:1
grep: /sys/class/net/eth2/carrier: Argument invalide
grep: /sys/class/net/eth3/carrier: Argument invalide
/sys/class/net/lo/carrier:1
# ---
$ grep "" /sys/class/net/*/operstate
/sys/class/net/bond0/operstate:up
/sys/class/net/eth0/operstate:up
/sys/class/net/eth1/operstate:up
/sys/class/net/eth2/operstate:down
/sys/class/net/eth3/operstate:down
/sys/class/net/lo/operstate:unknown

Et enfin, au cas où, pour trouver l’adresse IP (attention, le contenu peut être indigeste) :

cat /proc/net/fib_trie

L’adresse physique de la carte sera dans : /sys/class/net/INTERFACE/address.