Que problema divertido.
Embora eu tenha certeza de que a resposta do ændrük provavelmente funcionaria, sou um pouco adverso em deixar que algo dependente do software de desktop gerencie a disponibilidade da rede.
Eu sugiro que você brinque com a biblioteca Mechanize do Python . Você pode instalá-lo a partir dos repositórios via:
sudo apt-get install python-mechanize
Em seguida, obtenha scripts. Você precisa começar por descobrir a estrutura da página que está enviando. Você precisa encontrar o local de onde você vem e quais campos precisam ser inseridos para enviar. Uma vez que você sabe disso, é realmente tão simples quanto apenas escrever um pequeno analisador de formulário e um submissor. Mechanize faz todo o trabalho pesado. Veja um exemplo rápido adaptado de seus documentos em formulários :
import sys
from mechanize import ParseResponse, urlopen, urljoin
# replace this with the actual login page
# you'll need to do some research
uri = "http://theloginpage.com/"
response = urlopen(uri)
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]
print form
form["username"] = "your username"
form["username"] = "password"
# form.click() returns a mechanize.Request object
# (see HTMLForm.click.__doc__ if you want to use only the forms support, and
# not the rest of mechanize)
print urlopen(form.click()).read()
Dependendo de como o sistema funciona, isso pode ser suficiente. Você pode ter que amarrar alguns cookies para manter uma sessão ativa enquanto eles ligam a conexão, mas tecnicamente falando, não há nenhum argumento para que eles precisem disso.
Então você só precisa amarrar isso no sistema de rede para ser chamado. Carregá-lo de /etc/network/if-up.d
deve funcionar, mas sugiro que você prefixe seu código com um cheque para ter certeza de que está realmente no hotspot em que seu login funciona.