iwlistを使用して、特定のSSIDの名前、品質、および信号レベルを検索します。

iwlistを使用して、特定のSSIDの名前、品質、および信号レベルを検索します。

私はRSSIに関するプロジェクトを進めており、作業中の特定のWiFi SSIDの信号レベルを取得するにはLinuxコマンドラインを使用する必要があります。

scanコマンドを使用しましたが、iwlistgrepを使用してSSID名、品質、および信号レベルのみを印刷して目的の値を表示することはできません。

試したコマンドで目的の結果が得られませんでした。

  1. iwlist INTERFACE scanning essid SpecificESSID | grep Signal

  2. iwlist INTERFACE scanning essid SpecificESSID | grep ESSID,Signal

  3. iwlist INTERFACE scan | grep 'ESSID:"SpecificESSID"\|Signal level'- これはほとんど機能しますが、他のネットワークの信号レベルも表示するため、特定のネットワークに関する情報のみが必要です。

答え1

まず、iwlist既存のコマンドですが、新しいコマンドがあります。iwコマンドにはより多くの機能があります。

「使用中のSSID」が現在接続されているアクセスポイント(AP)の場合

iw wlan0 station dump

目的の値(平均信号強度など)を選択し、次の値を選択します。

iw wlan0 station dump | grep 'signal avg:'

実際には、すべてのAPよりも現在接続されているAPの詳細情報があります。

表示されるすべてのAPの信号強度が必要な場合は、次の手順を実行します。

iw wlan0 scan | egrep 'SSID|signal'

興味のあるSSIDを後処理できます。 SSID1とSSID2が必要であると仮定すると、次のことができます。

iw wlan0 scan | egrep 'SSID|signal' | egrep -B1 'SSID1|SSID2'

-B1スキャン出力では、信号強度がSSIDよりも優先されるため、一致の前の行が表示されます。

関連情報