RSSIを取得するために他のノードを監視する方法は?

RSSIを取得するために他のノードを監視する方法は?

同じネットワーク上の2つのノード間のRSSIを測定する必要があります。次の2つの情報がある場合:

  1. ネットワークのSSID。
  2. 接続されたRSSIを取得するために使用されるターゲットノードのIP。

だから私はこのコマンドを見つけました。iwspyところでカーネルでは見つからないようです。協会 言う:

私たちは役に立たなかったので、ずっと前にiwspyのサポートを削除しましたが、サポートの主張をやめるのを忘れました。どうやら誰も気にしませんでしたが、とにかく削除されました。

答え1

インターフェイスがIBSS、メッシュポイント、またはAP / P2Pグループ所有者モードの場合は、ダンプネットワークカードを使用してサイトMACとその信号レベルを検出できますiw dev wlan0 station dump

IPアドレスからMACを取得するには、ARPテーブルを使用することをお勧めしますip neigh。 ARP テーブルを入力するには、IP アドレスを ping する必要があります。

したがって、アドレスAを主張するノードのRSSIを取得するには、次のようにすることができます。

MAC="$(ip neigh show to A dev wlan0 | cut -f 3 -d ' ')"
if [ -n "$MAC" ]; then
    iw dev wlan0 station get "$MAC" | sed -nre "s@\s*signal:\s*@@p"
else
    # no ARP entry. Ping the address and retry.
fi

ただし、インターフェイスがこのタイプでない場合(AP以外のサイトなど)、モニタモードを操作する必要があり、IPアドレスからMACアドレスを取得する信頼できる方法はありません。パスを指定すると、送信者のIPではなく送信者のIPが使用されます。


言及したように、もはやiwconfig/iwspy/iwlist/iwpriv使用されず、迷惑です。これらは廃止され、以前のバージョンとの互換性のためにのみカーネル構成で有効になっている場合にのみ実装されているカーネルAPI(ワイヤレス拡張)を使用します。したがって、Wi-Fi Directを含む多くの機能が偽物や不足している部分がたくさんあります。 Wi-Fi Directを使用している場合は、すでに最新のnl80211コアAPIを使用しているので、wext APIとiwconfig/iwspy.

はい、ノードのMACアドレスが必要です。 Wi-FiはOSIモデルのレイヤ1と2で動作し、上位レイヤには興味がありません。 IP アドレスと MAC アドレスは異なる目的で使用され、同じものではありません。

関連情報