Rilevare il nome di un dispositivo di rete in bash?


12

Sto cercando di riprodurre un hack che emetterà il nome dei dispositivi di rete attivi sul proprio computer tramite bash. Lo sto facendo per lavoro. Come procedo a fare questo? Non voglio semplicemente usare "wlan0" o "eth0" o una qualsiasi di quelle schifezze generiche perché alcuni sistemi operativi usano nomi diversi (come pfSense per esempio).

Risposte:


28

Dipende da cosa intendi per "attivo" - se vuoi solo vedere i nomi di tutti i dispositivi di rete sul sistema, puoi guardare il contenuto della directory / sys / class / net ad es.

$ ls /sys/class/net
eth0  lo  wlan0

Per vedere lo stato, è possibile utilizzare il ipcomando su qualsiasi linkoggetto: è possibile analizzare l'output per ottenere i campi particolari desiderati, ad esempio per vedere solo il nome e lo stato del dispositivo

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

Se stai utilizzando una versione desktop moderna di Ubuntu (con interfacce gestite dal servizio gestore di rete), dovresti essere in grado di ottenere un elenco di stato del dispositivo simile usando nmcli

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

oppure, per limitare l'output a determinati campi in un modo che è più facilmente usato in uno script

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

Se si utilizza Network Manager, è anche possibile accedere alle proprietà del dispositivo e della connessione tramite DBUS - vedere ad esempio Tutorial Dbus - Fun with Network Manager


2

È possibile utilizzare ifconfigper rilevare i dispositivi di rete attivi, per un uso di output leggermente più piccolo ifconfig -s. ifconfigstampa le interfacce attive, con cui -aè possibile stampare tutte le interfacce riconosciute dal sistema come interfacce di rete.

Oppure usa ip addr.


0

Potrei non conoscere la risposta direttamente, ma ti darò un elenco di comandi di rete e forse da lì puoi provare a collegarlo con quello che devi fare.

Per visualizzare le reti e visualizzare il nome dei dispositivi di rete attivi su un singolo computer, è possibile provare i seguenti comandi:

ifconfig

Questo comando ci consente di rilevare i dispositivi di rete attivi. È inoltre possibile utilizzare il comando ifconfig -s per un uso di output più piccolo. È possibile utilizzare questo comando per configurare una particolare interfaccia

ip addr

Questo comando ci consente di visualizzare le informazioni sulla rete.

tcpdump

Questo comando è uno sniffer di rete. Quello che fa è catturare i pacchetti da un'interfaccia di rete e li interpreta per te.

Se ricevi mai un messaggio di autorizzazione negata, semplicemente: **gksu yourcommand**per ottenere le autorizzazioni di root e forzare il comando.

findsmb

È possibile utilizzare questo comando per elencare le informazioni sui computer che rispondono alle query sui nomi SMB.

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.