So erhalten Sie die IPV4-Adresse für eine Schnittstelle von / proc

24

Gibt es eine saubere, einfache Möglichkeit, eine IP-Adresse für eine Netzwerkschnittstelle zu ermitteln /proc, ähnlich wie ich die MAC-Adresse für eine Netzwerkschnittstelle ermitteln kann?
Im Idealfall würde ich einfach cat eingeben /proc/<foo>/{interface_name}und die IPv4-Adresse erhalten.

Ich möchte lieber nichts anderes als laufen cat.

razeh
quelle

Antworten:

23

Unter dem /procVerzeichnis finden Sie die IPv4-Adressen auch in der Tabelle Forwarding Information Base unter/proc/net/fib_trie

Der Tisch ist eigentlich nur verständlich cat, zuerst kommt der Main:und dannLocal:

cat /proc/net/fib_trie

oder um Ihr Netzwerk, IP-Adressen und Netzmaske zu sehen:

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
quelle
1
Gibt es eine Möglichkeit, die Schnittstelle für jede IP-Adresse abzurufen?
razeh
Sie erscheinen in einer festgelegten Reihenfolge. wahrscheinlich Priorität, aber das kann geändert werden; anders als das, nein.
Rui F Ribeiro
2
/proc/net/fib_trieist auf meinem RHEL 6.6-System hier bei der Arbeit nicht verfügbar
villapx
1
@villapx fib_trie ist auf 2.6-Kerneln nicht vorhanden.
Rui F Ribeiro
Es gibt keine Möglichkeit, IP-Adressen mit der Schnittstelle in fib_trie zu verknüpfen.
ZioByte
0
$ awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"
Gott
quelle
2
Willkommen bei U & L! Warum <<< "$(</proc/net/fib_trie)"anstelle eines einfachen </proc/net/fib_trie?
fra-san