0.结果
我已经成功弄好了,但是不是这个方案(亏我还改了好多遍)
这个方案参考了中国矿业大学大佬的方案(Gitee链接),感谢中国矿业大学物联网与大数据实验室提供的方法与代码
(但是这样真的好吗这个实验室破解学校的校园网)
大佬的仓库没有Licence,所以我会以GPL 3.0 Lincence开源该项目对于吉首大学的适配性代码。
注:本教程及相关程序均以GPL3.0进行开源,未经中国矿业大学物联网与大数据实验室和本人同意,请勿将本教程及程序或程序实现得到的产品(包括但不限于基于开源操作系统的第三方路由器系统、插件或者路由器产品)进行售卖。遵循GPL3.0 Licence进行开源
(禁止在非授权的情况下私自使用代码进行商业用途!)
1.大佬的方案
和湖南科技大学大佬的方案一样,对于这种网页认证的客户端,只需要发包就行了。
湖南科技大学大佬和矿大物联网实验室已经大概把参数算了出来,这里我不放出他们的结果,接下来我将讲一下吉首大学的适配情况。
吉首大学存在城市热点公司提供支持的一个热点JSU-WLAN-DORM,相比于前两位大佬学校的方案,我们学校的方案既乖也不乖。
体现在哪里呢?
湖南科技大学大佬使用的是Linux脚本的方式,矿业大学实验室使用两个版本的Python,实际上都有一部,特别是矿业大佬,5s一次调用API检测联通情况。
但是这种方案在吉首大学 不适用!
吉首大学的API可以说登录上了就碰不得。因为如果在联通的情况下继续连接,即使MAC号相同,一个设备执行,也会执行往前挤的操作。
怎么说呢,这会导致在登录状态下登录——注销网络账号——继续重新登录,会导致十几秒的断网,且有很大几率会不会主动登录(即只注销不登录)
他们的大学可能经常断网,但是我们吉首大学网络很乖的啊,一般不会掉线的。
于是我稍作修改这一步,将5s访问连接API的一步删去。
但是这个网络它又不乖,一般不会掉线又不是代表不会掉线,所以该有的保险机制还是有。
于是我改成了1小时进行一次登录检查。
和吉首大学公共网络、其他两位大佬的学校不同,吉首大学使用JSUID进行网络授权认证(今年刚改的)
而且前两位大佬总结的,经过我的测试有多个参数不要。
callback : dr+登录时间戳
DDDDD :JSUID@运营商
upass :JSUID密码
这三个必须要,特别是第一个特别迷惑。即使你的callback不合法(即登录时间戳不对),也能正常登录,但是一旦没有callback,直接返回404的html
基于以上,我制作了python代码。
2.我的方案
2.1 基于Python
详见中国矿业大学大佬的教程,在这里不多赘述。进行Python3安装,本软件基于Python3环境。(3.6+)
2.2 基于脚本
需要准备的材料:
路由器(基于Linux系统即可)、XShell、WinSCP。(软件下载地址自行百度,其中XShell有个人学习使用免费授权)
sh代码下载:
1、路由器上电
2、连接到管理面板,进行对无线网络的配置。(以下操作建议有线连接路由器)
(无线AP使用方法)3、将路由器连接到“JSU-WLAN-DORM”。相关配置好后,路由器无线功能会重新启动,此时打开192.168.254.17,查看是否能够进入吉首大学宿舍网络登录页面。
(使用有线无需此步骤)
4、下载GitHub附带的脚本文件,将{账号}改为账号,{密码}改为密码,{运营商}改为相应运营商(移动:cmcc,联通unicom,电信:telecom)
5、打开WinSCP,主机IP输入登录页面的IP,用户名密码为路由器管理后台登录账号、密码,协议选择SCP。将改好的文件上传到路由器
6、打开XShell,连接路由器(和WinSCP连接方法一样),进行测试操作:
输入sh 脚本连接进行测试,显示:OK后打开任意连接,测试是否能够联通。
7、如果测试能够正常连接网络后,在命令行界面按下Ctrl+C,进行脚本的终止操作,断开连接
8、打开路由器系统——>启动项,将sh 脚本链接(绝对路径)添加至exit 0 前面即可。
脚本参数修改:(存在两个脚本,因为wget不同,某些路由器无法识别某些参数:)
将关键信息给出:
sleep 1h:冻结1h,即每一小时进行一次登录,防止抽风掉线。
url存在相关修改项。
test