Erkennen Sie den Namen eines Netzwerkgeräts in der Bash?

12

Ich versuche, einen Hack zusammenzutrommeln, der den Namen der aktiven Netzwerkgeräte auf dem Computer per Bash ausgibt. Ich mache es für die Arbeit. Wie mache ich das? Ich möchte nicht einfach "wlan0" oder "eth0" oder irgendetwas davon verwenden, weil einige Betriebssysteme andere Namen verwenden (wie zum Beispiel pfSense).

Brandon
quelle

Antworten:

28

Es kommt darauf an, was Sie mit "aktiv" meinen. Wenn Sie nur die Namen aller Netzwerkgeräte im System anzeigen möchten, können Sie den Inhalt des Verzeichnisses / sys / class / net anzeigen, z

$ ls /sys/class/net
eth0  lo  wlan0

Um den Status anzuzeigen, können Sie den ipBefehl für beliebige linkObjekte verwenden. Sie können die Ausgabe analysieren, um die gewünschten Felder abzurufen, z. B. nur den Gerätenamen und den Status

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

Wenn Sie eine moderne Desktop-Version von Ubuntu ausführen (mit vom Network-Manager-Dienst verwalteten Schnittstellen), sollten Sie in der Lage sein, mit eine ähnliche Gerätestatusliste zu erhalten nmcli

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

oder um die Ausgabe auf bestimmte Felder zu beschränken, die in einem Skript einfacher zu verwenden sind

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

Wenn Sie den Netzwerk-Manager verwenden, können Sie auch über DBUS auf Geräte- und Verbindungseigenschaften zugreifen - siehe z. B. Dbus-Tutorial - Spaß mit dem Netzwerk-Manager

Stahlfahrer
quelle
2

Mit können Sie ifconfigdie aktiven Netzwerkgeräte erkennen und für eine etwas geringere Ausgabe verwenden ifconfig -s. ifconfigdruckt die aktiven Schnittstellen, mit denen -aSie alle Schnittstellen drucken können, die vom System als Netzwerkschnittstellen erkannt werden.

Oder benutze ip addr.

Chaos
quelle
0

Möglicherweise weiß ich die Antwort nicht direkt, aber ich gebe Ihnen eine Liste der Netzwerkbefehle. Vielleicht können Sie von dort aus versuchen, sie mit dem zu verbinden, was Sie tun müssen.

Mit den folgenden Befehlen können Sie Netzwerke anzeigen und den Namen der aktiven Netzwerkgeräte auf einem einzelnen Computer ausgeben:

ifconfig

Mit diesem Befehl können wir die aktiven Netzwerkgeräte erkennen. Sie können den Befehl ifconfig -s auch für kleinere Ausgaben verwenden. Mit diesem Befehl können Sie eine bestimmte Schnittstelle konfigurieren

ip addr

Mit diesem Befehl können wir Netzwerkinformationen anzeigen.

tcpdump

Dieser Befehl ist ein Netzwerk-Sniffer. Es erfasst Pakete von einer Netzwerkschnittstelle und interpretiert sie für Sie.

Wenn Sie jemals eine Meldung erhalten, der die Berechtigung verweigert wurde, gehen Sie einfach wie folgt vor: **gksu yourcommand**Sie erhalten Root-Berechtigungen und erzwingen den Befehl.

findsmb

Mit diesem Befehl können Sie Informationen zu Computern auflisten, die auf SMB-Namensabfragen antworten.

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

Mike Wentworth
quelle