web-dev-qa-db-ja.com

DebianでオープンWiFiに自動接続

WiFiネットワークに登録されているWiFiモジュールがあります。この地域には他にもいくつかのWiFiネットワークがあります。ただし、コンピューターは、どのWiFiネットワークに接続できるかを認識していません。

そのため、コンピューターはインターネットにアクセスできるWiFiを確認しようとしました。 1つのWiFiで接続できない(そしてcnn.comにアクセスできない)場合は、次のWiFiを試す必要があります。

DebianまたはWiCDのようなプログラムでこれを自動的に行う方法はありますか?

5
Alexis K

これはBASHで行うことができます。毎分接続を確認するか、応答にpingを送信します(高すぎる場合)。ネットワークをスキャンして切り替えます。

スキャンには以下を使用できます。
$ iwlist wlan0 scan

接続には使用できます

#!/bin/bash
killall -9 dhclient
ifconfig wlan0 down
ifconfig wlan0 up
iwconfig wlan0 channel CHAN
iwconfig wlan0 essid ESSID
ifconfig wlan0 up
dhclient wlan0

非常に便利なツールであるgrep/awk/cutを使用して、スキャンスクリプトを接続スクリプトに簡単にバインド(結合)できます。

Ubuntu(スパイ!!!)を使用している場合は、次の方法でネットワークマネージャーサービスをオフにします。
再起動までの一時的な解決策
$ /etc/init.d/network-manager stop
chmod + xまでの永続的なソリューション(networkmanagerを元に戻したい場合)
$ chmod -x /etc/init.d/network-manager

fedoraでは(今のところ安全です!)このサービスはNetworkManagerと呼ばれます:
temp sol:
$ service NetworkManager stop
perm sol:
$ service NetworkManager disable