bashでネットワークデバイスの名前を検出しますか?


12

私は、bashを介して自分のコンピューター上のアクティブなネットワークデバイスの名前を出力するハックを作成しようとしています。私は仕事のためにそれを作っています。これを行うにはどうすればよいですか?一部のOSでは異なる名前(たとえばpfSenseなど)を使用しているため、「wlan0」や「eth0」などの一般的ながらくたを単純に使用したくありません。

回答:


28

「アクティブ」の意味に依存します-システム上のすべてのネットワークデバイスの名前だけを表示したい場合は、/ sys / class / netディレクトリの内容を見ることができます。例

$ ls /sys/class/net
eth0  lo  wlan0

ステータスを確認するには、ip任意のlinkオブジェクトでコマンドを使用できます-出力を解析して、たとえばデバイス名と状態のみを表示する特定のフィールドを取得できます

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

Ubuntuの最新のデスクトップバージョンを実行している場合(ネットワークマネージャーサービスで管理されているインターフェイスを使用)、次を使用して同様のデバイスステータスリストを取得できます。 nmcli

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

または、スクリプトでより簡単に使用できる方法で出力を特定のフィールドに制限する

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

ネットワークマネージャーを使用している場合は、DBUSを介してデバイスと接続のプロパティにアクセスすることもできます。たとえば、Dbusチュートリアル-ネットワークマネージャーの楽しみを参照してください。


2

を使用ifconfigして、アクティブなネットワークデバイスを検出し、出力を少し小さくすることができますifconfig -sifconfigアクティブなインターフェイス-aを印刷します。システムがネットワークインターフェイスとして認識しているすべてのインターフェイスを印刷できます。

またはを使用しますip addr


0

私は直接答えを知らないかもしれませんが、ネットワークコマンドのリストを提供し、そこからあなたがする必要があるものとそれを接続してみることができます。

ネットワークを表示し、単一のコンピューターでアクティブなネットワークデバイスの名前を出力するには、次のコマンドを試すことができます。

ifconfig

このコマンドにより、アクティブなネットワークデバイスを検出できます。また、ifconfig -sコマンドを使用して出力を小さくすることもできます。このコマンドを使用して、特定のインターフェイスを構成できます。

ip addr

このコマンドにより、ネットワークネットワーク情報を表示できます。

tcpdump

このコマンドはネットワークスニファーです。ネットワークインターフェイスからパケットをキャプチャし、それらを解釈します。

許可が拒否されたというメッセージが表示された場合は、単に:**gksu yourcommand**ルート許可を取得してコマンドを強制するために。

findsmb

このコマンドを使用して、SMB名前クエリに応答するマシンに関する情報を一覧表示できます。

ソース:http : //www.gymforgeeks.com/topic/358445-/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.