WiFi 스캔은 후속 다중 스캔을 위해 전원이 꺼진 네트워크의 SSID를 나타냅니다.

WiFi 스캔은 후속 다중 스캔을 위해 전원이 꺼진 네트워크의 SSID를 나타냅니다.

나는 무선 네트워크를 검색하는 프로그램을 사용하는 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

관련 정보