De forma predeterminada ifconfig
, me mostrará todas las interfaces disponibles, pero ¿qué sucede si solo quiero mostrarlas active
? Como, en0
solo abajo.
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 14:10:9f:e0:eb:c9
inet6 fe80::1610:9fff:fee0:ebc9%en0 prefixlen 64 scopeid 0x4
inet X.X.X.X netmask 0xffffff00 broadcast 101.6.69.255
nd6 options=1<PERFORMNUD>
media: autoselect
**status: active**
en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 32:00:14:e7:4f:80
media: autoselect <full-duplex>
**status: inactive**
El aviso ifconfig en0
no satisfará, en0
no siempre es el activo;)
Estoy ejecutando Mac OS X.
command-line
networking
osx
interface
qweruiop
fuente
fuente
ifconfig
implementaciones varían. Además, ¿por qué esifconfig
obligatorio el uso ? ¿Cuál es tu objetivo final?Respuestas:
Para obtener una descripción completa de todos los servicios activos, intente:
Esta expresión regular simple debería filtrar solo las interfaces activas y toda su información. Supongo que ponga un alias para esto en su archivo ~ / .profile o ~ / .bash_profile (¿tal vez si es activo?)
Para obtener el nombre de la interfaz (útil para los scripts), use:
Tienes que instalar pcregrep para que esto funcione. Está en macports en el paquete pcre. Alternativamente, esto debería funcionar con GNU grep usando en
grep -Pzo
lugar depcregrep -M -o
pero con el resto igual, pero no lo he probado.fuente
Si solo desea imprimir la "entrada" si contiene
status: active
, entonces podría usar algo como este programa awk como filtro para la salida ifconfig :Cuando comienza cada "entrada" (una línea está vacía o no comienza con una pestaña), comience a guardar la entrada en un búfer. Agregue a este búfer cualquier línea posterior que comience con una Tabulación. Esté atento a la cuerda mágica
status: active
; si se vio una línea como esa, imprima el búfer (la "entrada" anterior) cuando comience una nueva "entrada" (o finalice la entrada).Guarde el texto del programa anterior en un archivo y úselo así:
O, si usa
chmod +x
el archivo, puede simplificarlo un poco:fuente
Si no es adverso a algunas secuencias de comandos bash, puede hacer esto:
Eso enumerará las interfaces de red activas. Probado en Mac OS X 10.13.
Lo bueno es que no necesitas instalar nada. Simplemente ejecute lo anterior en una Terminal.
fuente
ifconfig -lu
, no funcionará en Debian. Pero OP está utilizando MacOS de todos modos, por lo que esta solución funcionaría en sistemas con BSDifconfig
.ifconfig -lu
Al leer sus comentarios y preguntas, parece que realmente desea obtener las interfaces que tienen asignada una dirección IP.
Puede hacer esto rápidamente con
ifconfig
ygrep
.Ejecutando el comando:
Debe producir algo similar a:
Esto mostraría cada línea con un nombre de interfaz y una IP si tuvieran una.
Alguna magia REGEX más específica podría darte exactamente lo que necesitas.
fuente
active
consideración?Desearía que la pregunta fuera un poco más clara. Suponiendo que por
Active interface only
, pretendía mostrar solo el nombre de las interfaces activas (en mi casoUP
yRUNNING
estadoactive
) sin ningún otro detalle. Entonces intente esto:La salida se vería así:
Ajuste el
grep -v
campo y agregue más interfaces no deseadas comoloopback
->lo
etc., si es necesario.Ahora, si lo desea y necesita verificar si las interfaces encontradas están activas actualmente. Entonces podemos simplemente pasarlos como un argumento para lo
ifconfig <interface>
que se muestra a continuación:[[ $(ifconfig en0 | grep -w active) ]] && echo "en0 is active"
Simplificando esto aún más e implementándolo en una función:
La ejecución de esta función devolverá solo las interfaces activas. En mi caso:
fuente
A continuación se imprimirán solo aquellas interfaces que estén configuradas para tener una IP
fuente
Obtenga solo la interfaz ACTIVE MAC:
fuente
ip
por defecto; necesitas HomeBrew para eso, luego correbrew install iproute2mac
una vez. El código fuente está en github.com/brona/iproute2macCómo funciona:
fuente
Esto mostrará el estado de la conexión ethernet en0
fuente