Cómo obtener la dirección IPV4 para una interfaz de / proc


24

¿Existe una manera limpia y simple de obtener una dirección IP para una interfaz de red /proc, de forma similar a como puedo obtener la dirección MAC para una interfaz de red?
Lo ideal sería escribir cat /proc/<foo>/{interface_name}y obtener la dirección IPv4.

Prefiero no ejecutar nada más que cat.

Respuestas:


23

En el /procdirectorio, también puede encontrar las direcciones IPv4 en la tabla Base de información de reenvío, en/proc/net/fib_trie

La tabla es bastante inteligible haciendo un simple cat, primero viene el Main:y luegoLocal:

cat /proc/net/fib_trie

o para ver su red, direcciones IP y máscara de red:

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
¿Hay alguna manera de obtener la interfaz para cada dirección IP?
razeh

Aparecen en un orden predeterminado; probablemente prioridad, pero eso se puede cambiar; aparte de eso, no.
Rui F Ribeiro

2
/proc/net/fib_trieno está disponible en mi sistema RHEL 6.6 aquí en el trabajo
villapx

1
@villapx fib_trie no está presente en 2.6 núcleos.
Rui F Ribeiro

No hay forma de asociar direcciones IP con interfaz en fib_trie.
ZioByte

0
$ awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"

2
Bienvenido a U&L! ¿Por qué en <<< "$(</proc/net/fib_trie)"lugar de un simple </proc/net/fib_trie?
fra-san
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.