가장 빠른 개방형 Wi-Fi(인터넷 접속 가능)에 연결하고 연결이 끊어진 후에도 계속 확인하시겠습니까?

가장 빠른 개방형 Wi-Fi(인터넷 접속 가능)에 연결하고 연결이 끊어진 후에도 계속 확인하시겠습니까?

나는 이것이 보안™️ 측면에서 매우 나쁜 생각이라는 것을 알고 있으며 이에 동의합니다. (모든 것이 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당신을 허용

  1. SSID를 스캔하고 결과를 표시합니다.

    wpa_cli -i wlan0 SCAN
    wpa_cli -I wlan0 SCAN_RESULTS
    
  2. SSID에 대한 자세한 정보를 얻으세요(신호 강도, 암호화 등 포함):

    wpa_cli -i wlan0 BSS 0
    

    팁: 0SCAN_RESULTS 출력에서 ​​추가 정보를 원하는 SSID로 idx를 바꾸세요.

  3. 기준에 맞는 특정 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

  4. SSID 연결 끊기

    sudo wpa_cli -i wlan0 DISCONNECT
    

분명히 이러한 명령의 출력을 일부 구문 분석해야 합니다.


SSID에 연결한 후 서버에 연결할 수 있는지 확인하려면 핑 호출 결과를 간단히 평가하면 됩니다.


이제 모든 것을 하나로 합치기만 하면 됩니다.

관련 정보