7

近くの WiFi クライアント デバイスを見つけるための Python モジュールを作成しています。私の現在のスキャナーは、プローブ要求をリッスンし、クライアントの MAC アドレスをログに記録するだけです。

私が抱えている問題は、それを発見するためにプローブ要求をブロードキャストするデバイスに完全に依存していることです。

デバイスを検出する他の方法があるかどうか疑問に思っています。このサイトを 802.11 ガイドとして使用して、アイデアを思いつきました。

  • 一般的な SSID を含むブロードキャスト パケットを送信して、クライアントが応答するかどうかを確認します。たとえば、AP SSID として「Netgear」を使用してブロードキャストを送信し、既知の「Netgear」プロファイルを持つクライアントが応答するかどうかを確認します。
  • 関連付け解除パケットを送信して、すでに接続されているクライアントに電波の再スキャンを強制します

これら 2 つのアイデアはまだテストしていません。吐き出すだけ。

考え?

4

4 に答える 4

3

ブロードキャストのアイデアはうまくいかないと思います。802.11 のブロードキャスト トラフィックは確認応答されないため、ステーションがそのようなトラフィックに応答する理由はありません。唯一の方法は、問題の AP に接続している場合です。この場合、ブロードキャスト ICMP エコー要求または同様のことを行うことができます (ただし、同じ ESS 内のステーションからのみ応答を取得します)。

関連付けを解除するパケットのアイデアも機能しないと思います。これは、ステーションにアドレス指定する必要があり、おそらくそのアドレスがわからないためです。

すべてのトラフィックをスニッフィングし、表示される MAC アドレスを追跡することをお勧めします。ステーションのプロービングに依存する必要はありませんが、いつか何か (何でも) を送信することに依存します。

于 2010-10-23T18:44:46.710 に答える
1

また、Wi-Fi クライアント デバイスからアクセス ポイントに送信されたデータ フレームとデータ ヌル フレームを探すこともできます。STA からのこれらのアップリンクフレームは、フレーム制御フィールドに ToDs=1 および FromDs=0 を持ちます。クライアント デバイスがアクティブにデータをダウンロードしていない場合でも、ほとんどの場合、キープアライブとして、またはアクセス ポイントで現在の省電力状態を通知するために、頻繁にデータ ヌル フレームを定期的に送信します。

于 2011-08-10T20:28:33.080 に答える