私は、ワイヤレスネットワークを検索するプログラムを使用するPythonプログラムを作成しようとしたときに初めてこの問題に直面しました。私は次のツールを使用しました。
iwlist、iw、wpa_cli、nmcli、iwconfig
私はこれらすべての人に同じ行動を起こしました。あなたがコンピュータとワイヤレスアクセスポイント/ルーターの隣に座っているとしましょう。 Wi-Fi アダプタ名が wlan0 であるとし、次のいずれかのコマンドを入力し、ルータの電源を切り、ターミナル ウィンドウで Enter キーを押します。
iw wlan0 scan | grep SSID
iwlist wlan0 scan | grep SSID
wpa_cli -i wlan0 scan && wpa_cli -i wlan0 scan_results
nmcli device wifi rescan && nmcli device wifi list
すべてのコマンドはかなり長い間SSIDを表示します。私はE&Mの定常波が消えるのに長い時間がかかると思います。誰でもこの問題を解決できますか?
答え1
基本構成wpa_requester一定期間キャッシュされたスキャン結果が表示されることがあります。
スキャン結果に最後のスキャン中に検出されたSSIDのみが表示されるように、wpa_supplicant.confファイルに次の行を追加します。
ignore_old_scan_res=1
答え2
この問題はずっと前に解決されていますが、回答を申し訳ありませんでした。次のwpa_supplicant設定は、上記のWi-Fi動作を担当します。
bss_expire_countとbss_expire_age
前者は、SSIDがリストから削除される前に欠けている必要があるスキャンの数です。後者は、SSIDがブロードキャストされなくなった後の秒数です。
答え3
上記のどれも私には適していません。閉じたネットワークがWi-Fi検索結果に表示されないように私が見つけた唯一の一貫した方法は、ワイヤレスインターフェイスのカーネルモジュールをリロードすることです。これにより、以前の検索でキャッシュされたすべての結果が完全にフラッシュされます。
シェルスクリプトでこの戦略に従うには、次の行を含めます。
# as appropriate for your system:
iface=wlan0
# reload kernel module:
module=$(basename $(readlink -f /sys/class/net/$iface/device/driver/module))
modprobe -r $module
modprobe $module
# bring interface back up:
ifconfig $iface up
# scan for hotspots using your preferred method (I happen to like iwlist):
iwlist $iface scanning