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.

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       

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)"

2
Willkommen bei U & L! Warum <<< "$(</proc/net/fib_trie)"anstelle eines einfachen </proc/net/fib_trie?
fra-san
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.