Answers:
多么有趣的问题。
虽然我确定ændrük的答案可能会奏效,但我对让依赖于桌面软件的某些工具管理网络可用性有些不利。
我建议您使用Python的Mechanize库。您可以通过以下方式从存储库中安装它:
sudo apt-get install python-mechanize
然后获取脚本。您需要先找出要提交到的页面的结构。您需要找到表格的来源以及需要输入哪些字段才能提交。知道这一点之后,实际上就像编写一个快速的小型表单解析器和提交器一样简单。机械化完成所有繁重的工作。这是一个简单的例子,改编自他们关于form的文档:
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()
根据他们系统的工作方式,这可能就足够了。您可能需要绑定一些cookie,以使会话在打开连接时保持活动状态,但是从技术上来讲,没有理由为什么他们需要这样做。
然后,您只需要将其绑定到网络系统中,即可对其进行调用。从加载它/etc/network/if-up.d应该可以,但是我建议您在代码前面加上一个检查,以确保您确实在登录所针对的热点上。