¿Detectando el nombre de un dispositivo de red en bash?

12

Estoy tratando de crear un truco que generará el nombre de los dispositivos de red activos en la computadora a través de bash. Lo estoy haciendo por trabajo. ¿Cómo voy a hacer esto? No quiero simplemente usar "wlan0" o "eth0" o cualquiera de esa basura genérica porque algunos sistemas operativos usan nombres diferentes (como pfSense, por ejemplo).

Brandon
fuente

Respuestas:

28

Depende de lo que quiera decir con 'activo': si solo desea ver los nombres de todos los dispositivos de red en el sistema, puede ver el contenido del directorio / sys / class / net, por ejemplo

$ ls /sys/class/net
eth0  lo  wlan0

Para ver el estado, puede usar el ipcomando en cualquier linkobjeto: puede analizar la salida para obtener los campos particulares que desea, por ejemplo, ver solo el nombre y el estado del dispositivo

$ ip -o link show | awk '{print $2,$9}'
lo: UNKNOWN
eth0: DOWN
wlan0: UP

Si está ejecutando una versión de escritorio moderna de Ubuntu (con interfaces administradas por el servicio de administrador de red), entonces debería poder obtener una lista de estado de dispositivo similar usando nmcli

$ nmcli dev status
DEVICE     TYPE              STATE
wlan0      802-11-wireless   connected
eth0       802-3-ethernet    unavailable

o, para limitar la salida a campos particulares de una manera que sea más fácil de usar en un script

$ nmcli --terse --fields DEVICE,STATE dev status
wlan0:connected
eth0:unavailable

Si está utilizando el administrador de red, también puede acceder a las propiedades del dispositivo y la conexión a través de DBUS; consulte, por ejemplo, el Tutorial de Dbus: Diversión con el Administrador de red

conductor de acero
fuente
2

Puede usar ifconfigpara detectar los dispositivos de red activos, para un uso de salida un poco más pequeño ifconfig -s. ifconfigimprime las interfaces activas, con las cuales -apuede imprimir todas las interfaces que el sistema reconoce como interfaces de red.

O utilice ip addr.

caos
fuente
0

Puede que no conozca la respuesta directamente, pero le daré una lista de comandos de red y tal vez desde allí pueda intentar conectarla con lo que necesita hacer.

Para ver redes y generar el nombre de dispositivos de red activos en una sola computadora, puede probar los siguientes comandos:

ifconfig

Este comando nos permite detectar los dispositivos de red activos. También puede usar el comando ifconfig -s para un uso de salida más pequeño. Puede usar este comando para configurar una interfaz particular

ip addr

Este comando nos permite ver la información de la red de red.

tcpdump

Este comando es un sniffer de red. Lo que hace es capturar paquetes de una interfaz de red y los interpreta por usted.

Si alguna vez recibe un mensaje de permiso denegado, simplemente: **gksu yourcommand**para obtener permisos de root y forzar el comando.

findsmb

Puede usar este comando para enumerar información sobre máquinas que responden a consultas de nombres SMB.

Fuente: http://www.gymforgeeks.com/topic/358445-/

Mike Wentworth
fuente