De forma predeterminada ifconfig, me mostrará todas las interfaces disponibles, pero ¿qué sucede si solo quiero mostrarlas active? Como, en0solo 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 en0no satisfará, en0no siempre es el activo;)
Estoy ejecutando Mac OS X.
command-line
networking
osx
interface
qweruiop
fuente
fuente

ifconfigimplementaciones varían. Además, ¿por qué esifconfigobligatorio 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 -Pzolugar depcregrep -M -opero 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 +xel 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 -luAl 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
ifconfigygrep.Ejecutando el comando:
Debe producir algo similar a:
eth0 Enlace de enlace: Ethernet HWaddr 00: 11: 22: 33: 44: 55 eth1 Enlace de enlace: Ethernet HWaddr 00: 11: 22: 33: 44: 66 inet addr: 192.168.0.8 Bcast: 192.168.0.255 Máscara: 255.255.255.0 lo Link encap: Loopback local inet addr: 127.0.0.1 Máscara: 255.0.0.0Esto 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
activeconsideració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 casoUPyRUNNINGestadoactive) sin ningún otro detalle. Entonces intente esto:La salida se vería así:
Ajuste el
grep -vcampo y agregue más interfaces no deseadas comoloopback->loetc., 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
ippor defecto; necesitas HomeBrew para eso, luego correbrew install iproute2macuna 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