Comment obtenir l'adresse IPV4 pour une interface à partir de / proc

24

Existe-t-il un moyen propre et simple d'obtenir une adresse IP pour une interface réseau /proc, similaire à la façon dont je peux obtenir l'adresse MAC pour une interface réseau?
Idéalement, je voudrais simplement taper cat /proc/<foo>/{interface_name}et obtenir l'adresse IPv4.

Je préfère ne rien faire d'autre cat.

razeh
la source

Réponses:

23

Sous le /procrépertoire, vous pouvez également trouver les adresses IPv4 dans le tableau de la base d'informations de transfert, à l'adresse/proc/net/fib_trie

La table est assez intelligible en faisant un simple cat, vient d'abord le Main:puisLocal:

cat /proc/net/fib_trie

ou pour voir votre réseau, vos adresses IP et votre masque de réseau:

cat /proc/net/fib_trie | grep "|--"   | egrep -v "0.0.0.0| 127."
       |-- 193.136.1.0
       |-- 193.136.1.2
    |-- 193.136.1.255
       |-- 193.136.1.0
       |-- 193.136.1.2
    |-- 193.136.1.255       
Rui F Ribeiro
la source
1
Existe-t-il un moyen d'obtenir l'interface pour chaque adresse IP?
razeh
Ils apparaissent dans un ordre prédéterminé; probablement prioritaire, mais cela peut être changé; à part ça, non.
Rui F Ribeiro
2
/proc/net/fib_trien'est pas disponible sur mon système RHEL 6.6 ici au travail
villapx
1
@villapx fib_trie n'est pas présent sur 2.6 noyaux.
Rui F Ribeiro
Il n'y a aucun moyen d'associer des adresses IP à l'interface dans fib_trie.
ZioByte
0
$ awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"
Dieu
la source
2
Bienvenue sur U&L! Pourquoi <<< "$(</proc/net/fib_trie)"au lieu d'un simple </proc/net/fib_trie?
fra-san