我经常连接到一个开放的网络,但在网页上使用之前需要密钥验证。是否可以使用脚本自动执行验证?
答案1
真是一个有趣的问题。
虽然我确信 ændrük 的答案可能会有效,但我有点不愿意让依赖于桌面软件的东西来管理网络可用性。
我建议你玩一下Python 的 Mechanize 库。您可以通过以下方式从存储库安装:
sudo apt-get install python-mechanize
然后开始编写脚本。您需要首先找出要提交的页面的结构。您需要找到表单来自哪里以及需要输入哪些字段才能提交。一旦您知道了这些,它实际上就像编写一个快速的小型表单解析器和提交器一样简单。Mechanize 会完成所有繁重的工作。这是一个改编自他们的表格文档:
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 jarring 来在他们打开连接时保持会话处于活动状态,但从技术上讲,他们为什么需要这样做没有任何争议。
然后你只需要将它绑定到网络系统中,这样它就会被调用。从中加载它/etc/network/if-up.d
应该可以工作,但我建议你在代码前面加上一个检查,以确保您确实处于登录有效的热点上。