PC和Android实现一键登录WLAN Web Auth的方法

好长时间没有发文了。明天还要大早起,现在正好趁着刻盘的时间把这个发出来吧,但是也不能睡太晚了。(顺便吐个槽,windows 光盘映像刻录机 速度真的很慢啊)

这次主要是说明一下快速登录部分WLAN的网页登陆(Web Auth)的方法。由于位置关系,就用最近的宿舍网的登陆举例啦。

适用范围:(原理上)用单网页进行POST提交表单的网页登陆。

举例:Anderson Junior College Hostel, Singapore.
首先,介绍一下这个例子的工作方法吧。

当新用户通过80端口获取任何网页时,服务器会自动拦截,并跳转到服务器的认证页面。(10.10.24.1/auth)用户输入完用户名和密码之后服务器会进行认证。当认证通过后,服务器会自动跳转回之前的页面。每次登陆后服务器会有一个会话ID。当该会话ID对应的IP/MAC地址超时后,会再次自动跳转并要求用户登录。

我们所要做的就是简化输入用户名和密码的这一流程,实现一键登录甚至自动登录的状态。

经过Chrome的开发者工具的提示发现,这个验证过程还是很简单的。整个过程其实只是向 10.10.24.1/auth/plain.html 发送了一个POST请求,其中包含了必要的登录信息。这样,我们只需要对这个POST指令下手了。

说到这个,最著名的功率应该就是cURL了吧。命令行模式,简洁轻快,兼容性丰富,而且只要不到1MB的空间。下载地址在此: http://curl.haxx.se/download.html (有源代码和各个系统的编译版本,如果有哪位想要自己编译我也不拦着)

接下来就是用cURL执行POST请求了。我用的指令是这样的:

curl -d “meth=plain&action=login&time=60&uid=用户名&pswd=密码 -k https://10.10.24.1/auth/plain.html
这里解释一下:

  1. -d “……” 是表示用 POST 模式发送的请求内容。这个字段可以在Chrome的开发者工具中找到。
    附方法:
    在Chrome中按下F12然后进行登陆,在提交完用户名密码后到底栏的Network标签,打开第一个文件,点击Query String Parameters右面的view source。下面出现的一行代码就是POST请求的原文了。
  2. -k 由于例子中的请求是通过HTTPS传输的,而且认证系统使用的是自制证书。去所以用 -k 开关去除SSL检查。没有SSL的可以省略。
  3. 最后的网址是请求发送的地址。
    用命令行执行过后会返回网页内容。如果内容提示登录成功,就说明我们的登陆有效了。

接下来就是一键登录的部分了。根据各自的喜好,可以把这个命令行用各种方式运行。在这里介绍几种:

Windows [1]: 桌面快捷键。
在桌面上新建一个快捷方式,把上述指令输入到路径栏。在创建好的快捷方式的属性里设置快捷键。这样,在任何时候都可以通过快捷键登入网络了。

Windows [2]: 计划任务
进入系统控制面板的计划任务区,将此指令设置为计划任务,即可使电脑每隔一段时间自动登录一次。

Android: 桌面快捷方式
GScript Lite脚本管理器中新建脚本,并在内容中输入以上指令。然后在启动器里面新建快捷方式,选择GScript Lite 然后选择你的脚本。即可在桌面上一键登录网络。


Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

To respond on your own website, enter the URL of your response which should contain a link to this post’s permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post’s URL again. (Find out more about Webmentions.)