目前我仍需要通过在路由器下挂载一个Linux设备来跑Python脚本来维持校园网登录,不过我已经查阅过相关帖子,已经有不少人实现在路由器装插件来实现了,不过鉴于大部分人的路由器并不是OpenWrt这类的第三方固件,所以我觉得还是外挂一个设备比较实在,咸鱼搜玩客云就有了,可以买已经刷好ARMBIAN的,价格也才二三十块。
思路如下:
apt update
-- 更新软件源缓存
apt upgrade
--更新系统
apt install python3-pip
-- 安装pip软件,用于安装脚本依赖库
pip3 install ping3
或者
pip3 install ping3 -i
https://mirrors.aliyun.com/pypi/simple/-- 安装ping3库,用于让脚本支持ping功能
crontab -e
-- 设置脚本开机启动
ps -ef | grep python3
--检查生效
@璐村惂鐢ㄦ埛_0Rb3VyD馃惥 /usr/bin/python3 脚本路径,例 /root/script.py
@reboot /usr/bin/python3 /root/script.py
由于某些玩客云并没有成功在开机启动这个python脚本,所以我设置了守护脚本,让守护脚本来循环启动python3脚本
守护脚本内容:
#!/bin/bash
while [ 1 ]
do
/usr/bin/python3 /root/net-login.py
done
命名net-login.sh(或者其他的)
把它添加到Linux的开机启动里面,也就是crontab -e
大概是这样的
然后它守护的python脚本内容为:
import os
import time
from ping3 import ping
err = 0
while True:
sec = ping('223.5.5.5')
if sec is None or sec == False:
err = err + 1
print('第' + str(err) + '次网络异常')
else:
print('网络正常,ping=' + str(sec))
err = 0
if err >= 3 :
print('网络异常3次,自动拨号...')
os.system("/usr/bin/curl 192.168.0.203/a70.htm -X POST -d 'DDDDD=你的宽带账号&upass=你的宽带密码&R1=0&R2=&R3=2&R6=0¶=00&0MKKey=123456&buttonClicked=&redirect_url=&err_flag=&username=&password=&user=&cmd=&Login=&v6ip='")
time.sleep(1)
结束,命名为net-login.py(或者其他的)
思路是用这台机器对一个域名进行长ping,如果ping超时了,一定次数之后立刻执行curl ,POST后面是自定义内容,记得更改为自己合适的程度,需要在浏览器输入curl后面的内容立刻就能登录上宽带为标准。
由于这个我是抓包电信的登录内容为基准,所以移动联通的同学可能不可用,不过抓包的部分就是F12的活了,百度也有,我暂时就不在这里展开了。
思路已经很明确了,这个解决方法也不是很完美,希望能抛砖引玉,让更有实力的同学改良它