1
wyf88 2014-12-20 23:25:24 +08:00
有。你先用 Chrome 登陆一次,看登陆时 post 了什么,然后在路由器上用 wget 去 post 咯
|
2
chunyang 2014-12-20 23:43:20 +08:00
Web 认证大概指的是 Captive portals 吧,通常也没有验证码,用脚本(curl 比 wget 更合适)实现很容易。
关键是如何*自动*执行登陆脚本,正确的方法应该是 监听网络连接 (而不是开机时),也就是说一旦有网络建立时(可以检查 SSID 以确认连上了你的学校的 WLAN)便登陆。 至于如何监听网路连接,应该由你使用的 OS 或者 Network Manager 决定,比如,GNU/Linux 一般默认用 Redhat 的 NetworkManager,这个程序默认支持在网路发生变化时执行脚本(参见 /etc/NetworkManager/dispatcher.d/)。至于 OpenWRT,我不清楚,应该有类似的东西。 |
3
lizheming 2014-12-21 07:39:08 +08:00 via iPhone
有啊…这个post脚本开机自启动妥妥的…要是加个网络掉线检测那更是极好的了。
|
4
wyf88 2014-12-21 15:17:19 +08:00 1
翻了一下我在学校的路由器里的,给你举个例子,不同学校肯定不一样。因为 Busybox 里就有 wget,所以我没有用 curl。我不是写程序的,所以这代码凑合用用就好。默认开机运行。监听网络连接之类的,我就不懂了。
cat <<'EOF' >/root/resnet_login.sh #!/bin/sh for loop in 1 2 3 4 5 6 7 8 9 10 do wget -q 'http://www.apple.com/library/test/success.html' -O '/tmp/success.html' if [ $(cat /tmp/success.html) == '<HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML>' ] then echo 'Router is online.' rm -f '/tmp/success.html' break else echo 'Router is offline.' wget -q 'http://securelogin.net.XXX.edu.cn/cgi-bin/login' --post-data='user=14XXXXXXX&password=XXXX&cmd=authenticate&Login=Log+In' -O '/tmp/login.html' rm -f '/tmp/login.html' '/tmp/success.html' fi sleep 12 done EOF chmod +x /root/resnet_login.sh sed -i '/^exit 0/i/root/resnet_login.sh' /etc/rc.local |
5
wyf88 2014-12-21 15:18:07 +08:00
晕。。。我不知道直接粘进回复框里,缩进就全没了。。。
|