web-dev-qa-db-fra.com

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

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

Je préfère ne pas exécuter autre chose que cat.

27
razeh

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

Le tableau est assez intelligible faisant un simple cat, vient d'abord le Main: et alors Local:

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       
28
Rui F Ribeiro
$ awk '/32 Host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"
1
God