kfg 发表于 2014-7-3 16:35

路由器自动登陆校园网

LZ一般住校内宿舍,校园网接无线路由器后给笔记本/Android手机/ipad等设备。由于校园网访问校外网络需要使用校园网账号和密码登录,而且一定时间没有外网流量的话就会自动退出。
因为2.0还小,丈母娘过来帮忙带。平时LZ和老婆上班后,丈母娘在闲暇之余会用手机上上微信,看看新闻什么的。但是因为校园网的登陆机制,而且丈母娘基本上只会用微信和zaker,不会用浏览器完成登陆,经常导致丈母娘上不了外网。
所以就琢磨着让路由器定时自动登陆和刷新,避免无法上网的问题。
LZ的路由器是Fast FW300r v2,刷了openwrt。
校园网的登陆是通过网页形式完成的,一开始想用php的curl来完成登陆,后来放了一遍google和baidu后,发现用php来跑太复杂和麻烦了。然后看到了这篇帖子 http://xiaoxia.org/2012/05/26/mini-router-auto-login-cmcc-2/ 是用shell来完成登陆的,主要是用wget的 --post-data模拟post操作,以实现登陆。

研究一番后发现,其实我的登陆可以更加简单,只需要post数据就行了,不用去判断是否已经登陆了。不过过程还是有点折腾。。

写了以下的脚本,保存为internet.sh,放在/bin/下面,然后chmod +x internet.sh赋予执行权限


username="username"
password="password"
login_url='url_for_login'
wget "${login_url}" --post-data="AuthenticateUser=${username}&AuthenticatePassword=${password}" --save-cookies=/tmp/cookies --keep-session-cookies -O /tmp/internet_login



执行之后,检查/tmp/internet_login的内容,居然还是登陆页面
测试修改过几次之后,仍然是同样的效果。就在电脑上开了apache,写了个php,用来接收post数据。

<?php
var_dump($_POST)
?>


结果居然是空的数组,这不科学啊。

折腾几次之后,还是空的数组,后来死马当活马医,更新wget吧

用opkg安装wget,然后再运行internet.sh,internet_login已经是登陆后的页面内容,Good,脚本搞定。

然后就修改crontab,增加自动运行脚本。

至此,问题解决了。。。

kfg 发表于 2014-7-3 16:36

其他的网络环境,如果是网页登陆验证的话,也可以参考上述的方法来实现自动登陆。

turtlerock 发表于 2014-7-3 16:37

h3c inode 5.1登陆,怎么解?

kfg 发表于 2014-7-3 16:40

Posted by turtlerock on 2014-7-3 16:37 http://www.ibmnb.com/images/common/back.gif
h3c inode 5.1登陆,怎么解?
是网页登陆的吗?

turtlerock 发表于 2014-7-3 16:45

回复 #4 kfg 的帖子

不是,是客户端登陆。。。

kfg 发表于 2014-7-3 16:47

Posted by turtlerock on 2014-7-3 16:45 http://www.ibmnb.com/images/common/back.gif
不是,是客户端登陆。。。
我这个方法只适用于网页登陆,或者服务器端是web server的形式的用户验证,其他的没有办法。

LiveOnLove 发表于 2014-7-3 16:52

高大上,不懂的路过。。。

lzxiang 发表于 2014-7-3 16:55

高级电工啊
页: [1]
查看完整版本: 路由器自动登陆校园网