Вы можете сделать это в 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
Пермский золь:
$ service NetworkManager отключить