나는 이것이 보안™️ 측면에서 매우 나쁜 생각이라는 것을 알고 있으며 이에 동의합니다. (모든 것이 SSL을 통과하므로 그렇습니다.)
나는 계속 연락하고 싶은 Raspberry Pi로 구동되는 작은 로밍 로봇을 가지고 있습니다. 이는 봇이 내 서버에 연결하기 위해 최선을 다해야 함을 의미합니다. Wi-Fi는 있지만 휴대폰 칩은 없습니다.
저는 기술 분야에 살고 있기 때문에 "이메일을 입력하거나 서비스 약관에 동의하면 무료 Wi-Fi" 액세스 포인트가 많이 있습니다.열려 있는SSID는 의미하지 않습니다.쓸 수 있는SSID.
서버에 대한 연결을 허용하는 액세스 포인트를 찾을 때까지 열려 있는 모든 액세스 포인트를 반복하여 연결이 끊어지거나 스캔 처리량이 너무 약한 경우 복구할 수 있는 방법(애플릿 또는 스크립트 등)이 있습니까?
Python, Bash 등 Raspbian(Debian)이 지원하는 모든 것을 실행할 수 있습니다. 연결이 불가능하여 발생하는 "중단"은 비즈니스 수행에 드는 비용입니다.
답변1
나는 귀하의 목적에 맞는 기성 도구를 알지 못하지만 직접 만들 수는 있습니다.
필요한 도구와 프로그램은 Raspbian에서 사용할 수 있습니다.
다행스럽게도 wpa-supplicant
네트워크 검색 및 네트워크 수동 연결에 대한 대화형 제어가 허용됩니다.
구체적으로, 당신은 프로그램을 사용할 수 있습니다wpa_cli
또는 사용C의 wpa_ctrl API, 이는 또한 의 기초이기도 합니다 wpa_cli
.
wpa_cli
당신을 허용
SSID를 스캔하고 결과를 표시합니다.
wpa_cli -i wlan0 SCAN wpa_cli -I wlan0 SCAN_RESULTS
SSID에 대한 자세한 정보를 얻으세요(신호 강도, 암호화 등 포함):
wpa_cli -i wlan0 BSS 0
팁:
0
SCAN_RESULTS 출력에서 추가 정보를 원하는 SSID로 idx를 바꾸세요.기준에 맞는 특정 SSID에 연결하세요
sudo wpa_cli -i wlan0 ADD_NETWORK sudo wpa_cli -i wlan0 SET_NETWORK 0 ssid "SSID" sudo wpa_cli -i wlan0 SET_NETWORK 0 psk "passphrase" sudo wpa_cli -i wlan0 ENABLE_NETWORK 0
참고:
0
나중에 stdout에 인쇄될 숫자로 바꾸십시오.ADD_NETWORK
SSID 연결 끊기
sudo wpa_cli -i wlan0 DISCONNECT
분명히 이러한 명령의 출력을 일부 구문 분석해야 합니다.
SSID에 연결한 후 서버에 연결할 수 있는지 확인하려면 핑 호출 결과를 간단히 평가하면 됩니다.
이제 모든 것을 하나로 합치기만 하면 됩니다.