基于shell的天翼校园登录&校园网认证
- 解决获取响应数据时结尾出现\r\n控制符导致字符串匹配失败的问题
- 自动获取mac地址
- 自动获取本地IP
- 增加用户自定义函数
- 使用shell轻量脚本,兼容大部分系统,
弥补了天翼无法在linux上使用的缺陷,官方已经支持linux图形化界面了 - 支持window、linux、mac、路由器系统、其他支持shell的系统(如termux)等
- 自动认证Portal网页
- 一键登录/注销
- 日志输出
- 对于Linux/Mac系统可以直接运行
- 对于Windows系统可以安装git,默认带一个bash终端,可以在bash中运行
- curl: 用于http请求(必装)。
- base64: 用于密码编码(非必装),可以自行去工具网站用base64编码密码,再填写到程序对应位置上,使用base64这个工具包可以自动编码,base64包的名字可以自行搜索对应系统的,不同系统有所区别。
- cron(crond): 用于自动执行计划任务,openwrt自带cron,其他系统可以测试一下。
对于openwrt系统,安装命令
opkg install curl
opkg install coreutils-base64
- 先在windows等系统填写账号密码(有些终端对中文显示不了)
################################
# 必填数据:账号、密码
username="123456"
passwd="123456789"
# device通过`ifconfig`查看,名称就是最左侧
device="wan" # 用于自动获取本地ip
################################
# 建议填写,一劳永逸
# base64编码过的密码(建议自行编码,节省内存)
pwd64=""
# 学校服务器,登录后查看日志,将nasip填入下面,否则会影响注销(wyu默认填119.146.175.80)
nasip="119.146.175.80"
# 学校代号,建议手动填写,节省访问资源(wyu默认填1414)
schoolid="1414"
# 日志路径、日志文件大小(kB)
path="/root/ESC-Z/ESC-Z.log"
logmaxsize=256
- 拷贝项目到/root,确认脚本所在位置为/root/ESC-Z/ESC-Z.sh
- 给权限,直接运行,会在/root/ESC-Z生成一个日志文件ESC-Z.log
chmod 755 /root/ESC-Z/ESC-Z.sh
/root/ESC-Z/ESC-Z.sh login
- 查看ESC-Z.log(成功登录的话可以进行下一步)
cat /root/ESC-Z/ESC-Z.log
- 编辑crontab文件内容
crontab -e
- 填入一下内容,表示每隔1分钟执行一次脚本(可以在Cron在线表达式生成器s生成)
*/1 * * * * /bin/sh /root/ESC-Z/ESC-Z.sh login
- 启动cron服务(有些系统是crond)
# 启动服务
service cron start
# 查看状态
service cron status
到此为止,脚本会每分钟执行一次
- 注销 (1.0.2以上版本会自动获取ip)
/root/ESC-Z/ESC-Z.sh logout
- 在工作日早上恢复网络后,定时重启路由器或重启wan口, 以刷新网络状态
# 重启名为wan的网口(自行查看设备的网口名称)
ifup wan
# 重启设备
reboot
- 对于一些工作日晚上断网,周末不断网的学校,自行配置crontab来计划执行脚本来适应断网
# 编辑crontab文件内容
# 每天从6:00到22:55,每隔5分钟执行一次
*/5 6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 * * * /bin/sh /root/ESC-Z/ESC-Z.sh login
# 周五周六0:00到5:55,每隔5分钟执行一次
*/5 0,1,2,3,4,5 * * 5-6 /bin/sh /root/ESC-Z/ESC-Z.sh login
# 每天23:00至23:30,每隔5分钟执行一次
0,5,10,15,20,25,30 23 * * * /bin/sh /root/ESC-Z/ESC-Z.sh login
# 周五周六23:35至23:55,每隔5分钟执行一次
35,40,45,50,55 23 * * 5-6 /bin/sh /root/ESC-Z/ESC-Z.sh login
致谢大佬们的项目
- https://github.com/OJZen/FckESC
- https://github.com/hzwjm/iNot-eclient
- https://github.com/6DDUU6/SchoolAuthentication
- https://github.com/OpenWyu/lua-esurfing-client
严格遵守GPL-3.0开源协议,禁止任何个人或者公司将本代码投入商业使用,由此造成的后果和法律责任均与本人无关。 本项目只适用于学习交流,请勿商用!
提issue或者Q群(729672645)
由于本人即将毕业,故无法继续更新脚本。听说学校也会加大算法更新力度,有生意头脑的同学想借此长久赚钱是不可取的。本项目已开源,有兴趣的可以fork项目进行研究,原理并不难。留了Q群提供交流,多看看参考的项目,我也是自己看代码知道原理的。