Você pode fazer isso no BASH. Basta verificar sua conexão a cada minuto ou responder ping (se for muito alto). Digitalize as redes e altere-as.
para digitalização, você pode usar:
$ iwlist wlan0 scan
para conectar você pode usar
#!/bin/bash
killall -9 dhclient
ifconfig wlan0 down
ifconfig wlan0 up
iwconfig wlan0 channel CHAN
iwconfig wlan0 essid ESSID
ifconfig wlan0 up
dhclient wlan0
você pode facilmente vincular (combinar) o script de varredura a (com) a conexão usando grep / awk / cut, que são ferramentas muito úteis.
Se você estiver usando o Ubuntu (Spying !!!), desative o serviço gerenciador de rede::
solução temporária até o reboot
$ /etc/init.d/network-manager stop
solução permanente até chmod + x (quando você quiser o networkmanager de volta)
$ chmod -x /etc/init.d/network-manager
no Fedora (Você está seguro por enquanto!) o serviço é chamado NetworkManager:
temp sol:
$ service NetworkManager stop
perm sol:
$ service NetworkManager desabilitar