同じネットワーク上の2つのノード間のRSSIを測定する必要があります。次の2つの情報がある場合:
- ネットワークのSSID。
- 接続された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 アドレスは異なる目的で使用され、同じものではありません。