Você pode realizar isso com o comando POST :
POST http://[ADRESS]:[PORT]/ <<< 'auth_user=ID&auth_pass=PASSWORD&accept=Continue'
Então você só precisa copiar este script na pasta /etc/NetworkManager/dispatcher.d/
. Quando você se conectar a uma rede com o NetworkManager, ele passará a interface usada em $1
e se esta for uma conexão ou desconexão em $2
ao seu script.
#!/bin/bash
if [ "$1 $2" = 'wlan0 up' ]
then
essid=$(iwconfig wlan0 | grep -o 'ESSID:".*$' | sed 's/^ESSID:"\(.*\)".*$//')
case "$essid" in
'Freewifi')
POST http://[ADRESS]:[PORT]/ <<< 'auth_user=ID&auth_pass=PASSWORD&accept=Continue' ;;
'Other')
POST http://[ADRESS]:[PORT] <<< 'accept_cgu=1' ;;
esac
fi
Lembre-se de preencher todas as entradas necessárias em seu formulário (às vezes, há uma entrada de segurança e isso pode ser muito complicado para automatizar a conexão em um script).
Foi há muito tempo que eu fiz um script para realizar isso e não testei.
Espero que esta resposta ajude.