私はこれがセキュリティ™️の面で非常に悪い考えであることを知っており、これに同意します。 (すべてが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に接続した後にサーバーに接続できることを確認するには、ping呼び出しの結果を簡単に評価するだけです。
今、すべてを一つにまとめるだけです。