2011-02-13 22 views

Respuesta

4

Un poco desordenado pero debería funcionar:

/sbin/ifconfig | grep -B1 1.2.3.4 | awk '{print $1; exit}' 

Opcionalmente, podría usar el comando ip que, cuando se usa con la opción -o|-oneline, es mucho más fácil de analizar. Por ejemplo

ip -o addr | awk '/1.2.3.4/{print $2}' 
7

Reemplazar 127.0.0.1 con la dirección IP que desea obtener la información de interfaz para

ifconfig | grep 127.0.0.1 -B1 | grep Link | cut -f 1 '-d ' 

Si también desea identificar el puerto físico de la máquina, ejecute

ethtool -p $OUTPUT_OF_FIRST_COMMAND 

Será parpadear la luz en la tarjeta ethernet asociada con esa interfaz

+0

me gané :) +1 –

2

De la parte superior de la cabeza puede ser que utilice grep:

ifconfig |grep -B1 '127.0.0.1' |grep -o '^[a-zA-Z0-9]*' 

Donde '127.0.0.1' es la dirección que usted está buscando.

-B1 establece el número de líneas que preceden al partido para devolver.

-o establece el segundo grep para que solo devuelva el segmento coincidente, en lugar de toda la línea.

'^ [a-zA-Z0-9] *' coincide con cualquier alfanumérico que comience al principio de la línea.

Dado que ifconfig sangra todas las líneas, excepto la línea del nombre de la interfaz, solo coincidirá con el nombre de la interfaz.

Es rápido y sucio, pero debería funcionar.

+0

+1 Para la explicación (es) –

0
ifconfig | awk 'BEGIN{RS=""}/127.0.0.1/{print $1}' 

ifconfig | ruby -00 -ane 'puts $F[0] if /127.0.0.1/' 
Cuestiones relacionadas