Skip to content

基于 Python 实现登录和登出广东天翼校园网的命令行工具

License

Notifications You must be signed in to change notification settings

Pandaft/ESurfingPy-CLI

Repository files navigation

ESurfingPy-CLI

简介

基于 Python 实现登录和登出广东天翼校园网网页认证的命令行工具。可以用该工具来快速登录或登出广东天翼校园网, 或者反复重新登录来重置限速状态,以 “破解” 限速。

./docs/images/1.png


项目演示

图形界面

./docs/images/gui.gif

命令行

./docs/images/cli.gif


适用学校

小道消息,广东天翼校园网于2021年10月20日,凌晨期间“优化”了校园网,实则是关闭了部分学校的网页认证通道。 一些学校原本只是前端网页删除或屏蔽了登录相关组件的学校,其实还是可以使用类似此项目相关的基于网页认证的 程序实现网页登录,但关闭认证通道后就彻底用不了(提示 已办理一人一号多终端业务的用户,请使用客户端登录当前该账号的拨号方式错误 )。此项目不再适用于这些学校,只适用于没有关闭网页认证的广东天翼校园网。 如果你的校园网可以使用天翼校园网客户端登录,可以试试我的新项目 go-esurfing

如果你的学校校园网是广东天翼校园网,欢迎使用并反馈项目适用情况: discussion#3


下载运行

运行已打包的可执行文件

程序打包了识别验证码所需的模型文件,因此文件体积较大。

由于 Python 不能交叉编译,在不同系统上存在差异,因此很可能无法正常运行。

已知 Win10, Win11, Ubuntu 22.10 测试正常,其余未测试,建议通过源码运行和自行编译打包。

运行源码

建议 Python <= 3.10 ,无图形界面 Linux 可能需要提前安装 tkinter。

git clone https://github.com/Pandaft/ESurfingPy-CLI.git
cd ESurfingPy-CLI
pip install -I -r requirements.txt  # 记得加上 -I 参数  
python main.py

参数说明

设备刚连上校园网络时自动弹出的,或者已经连上但未登录时打开任意网页跳转到下面这个登录网页,其中有此程序要的参数:

./docs/images/2.png

  1. ESurfingURL :校园网登录网址(部分),需要带端口。未登录时可能会出现域名解析错误(未能连接DNS服务器),可以先手动登录校园网后,使用 ping 等网络工具解析,然后用 IP:端口 代替,例如:125.88.59.131:10001
  2. WlanACIP :校园网的认证服务器IP,应该每个学校都不同;
  3. WlanUserIP :要登录的设备的IP,可以不是本机的,实现远程登录
  4. Account :校园网账号
  5. Password :校园网账号的密码

命令行

> ./ESurfingPy-CLI.exe --help
Usage: ESurfingPy-CLI.exe [OPTIONS] COMMAND [ARGS]...

  基于 Python 实现登录和登出广东天翼校园网网页认证通道的命令行工具。

Options:
  --help  Show this message and exit.

Commands:
  auto     多种模式触发重登校园网
  gui      启动图形界面
  login    登录校园网
  logout   登出校园网
  ocr      识别图片
  version  输出当前版本

启动图形界面

> ./ESurfingPy-CLI.exe gui --help
Usage: ESurfingPy-CLI.exe gui [OPTIONS]

  启动图形界面

Options:
  -h, --hide-console BOOLEAN  隐藏控制台(仅适用于 Windows)  [default: True]
  --help                      Show this message and exit.

不带命令和参数直接运行则默认启动图形界面,也可通过加 gui 命令来启动。

登录

> ./ESurfingPy-CLI.exe login --help
Usage: ESurfingPy-CLI.exe login [OPTIONS]

  登录校园网

Options:
  -u, --esurfing-url TEXT  校园网登录网址  [default: enet.10000.gd.cn:10001]
  -c, --wlan-acip TEXT     认证服务器IP
  -r, --wlan-userip TEXT   登录设备IP
  -a, --account TEXT       账号
  -p, --password TEXT      密码
  -v, --verbose BOOLEAN    输出详细过程  [default: True]
  --help                   Show this message and exit.

本机登录校园网的话,-u, -c, -r 可以不填,程序会尝试自动获取。

示例:./ESurfingPy-CLI.exe login -u 125.88.59.131:10001 -c 123.123.123.123 -r 234.234.234.234 -a 15012341234 -p 12345678 -v true

登出

> ./ESurfingPy-CLI.exe logout --help
Usage: ESurfingPy-CLI.exe logout [OPTIONS]

  登出校园网

Options:
  -u, --esurfing-url TEXT  校园网登录网址
  -c, --wlan-acip TEXT     认证服务器IP
  -r, --wlan-userip TEXT   登录设备IP
  -a, --account TEXT       账号
  -p, --password TEXT      密码
  -s, --signature TEXT     签名
  -v, --verbose BOOLEAN    输出详细过程  [default: True]
  --help                   Show this message and exit.
  • 如果填写了 signature ,不需要填写 password
  • 如果没有填写 signature ,需要填写账号和密码,程序会尝试登录来获取 signature 然后再登出。

signature 可以登录获得(即使重复登录),可以自己写程序将登录时返回的 signature 保存下来,需要时再读取使用。

示例:./ESurfingPy-CLI.exe logout -u 125.88.59.131:10001 -c 123.123.123.123 -r 234.234.234.234 -a 15012341234 -s XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -v true

识别验证码

> ESurfingPy-CLI.exe ocr --help
Usage: ESurfingPy-CLI.exe ocr [OPTIONS]

  识别图片

Options:
  -i, --image TEXT  图片路径
  --help            Show this message and exit.

示例:./ESurfingPy-CLI.exe ocr -i code.png

多种模式自动重登

> ./ESurfingPy-CLI.exe auto --help
Usage: ESurfingPy-CLI.exe auto [OPTIONS]

  多种模式触发重登校园网

Options:
  -m, --mode [net|uls|dls|ult|dlt|itv|mul]
                                  触发模式
  -t, --threshold FLOAT           触发网速(MB/s)或流量(MB)或时间(s)
  -s, --auto-stop BOOLEAN         自动停止(仅对网速模式有效)  [default: True]
  -u, --esurfing-url TEXT         校园网登录网址  [default: enet.10000.gd.cn:10001]
  -c, --wlan-acip TEXT            认证服务器IP
  -r, --wlan-userip TEXT          登录设备IP
  -a, --account TEXT              账号
  -p, --password TEXT             密码
  -v, --verbose BOOLEAN           输出详细过程  [default: True]
  --help                          Show this message and exit.

触发模式:

值备注 说明
net network 每间隔指定的时间(s)检测网络,断网时自动重登校园网
uls upload speed 实时监控上传速率(MB/s),连续 10s 低于指定值时自动重登校园网。
dls download speed 实时监控下载速率(MB/s),连续 10s 低于指定值时自动重登校园网。
ult upload traffic 实时监控上传流量(MB),达到指定值时自动重登校园网。
dlt download traffic 实时监控下载流量(MB),达到指定值时自动重登校园网。
itv interval 每间隔指定的时间(s)自动重登校园网。
mul manual 手动回车后重登校园网。

示例:

  • 间隔 5 秒检测网络,当网络断开时自动登录:

./ESurfingPy-CLI.exe auto -m net -t 5 -u 125.88.59.131:10001 -c 123.123.123.123 -r 234.234.234.234 -a 15012341234 -p 12345678 -v true

  • 实时监控上传速率,连续 10s 低于 3MB/s 时自动重登:

./ESurfingPy-CLI.exe auto -m uls -t 3 -u 125.88.59.131:10001 -c 123.123.123.123 -r 234.234.234.234 -a 15012341234 -p 12345678 -v true

  • 实时监控下载流量,达到 600MB 时自动重登:

./ESurfingPy-CLI.exe auto -m dlt -t 600 -u 125.88.59.131:10001 -c 123.123.123.123 -r 234.234.234.234 -a 15012341234 -p 12345678 -v true


应用示例

1. Win10 快速一键登录/登出

利用快捷方式,可以实现带参数启用程序:

./docs/images/3.png

记得不要移动原文件,否则快捷方式会不可用。

2. Win10 开机自动登录校园网

根据上述制作一个登录的快捷方式,然后按下 Win + R 输入 shell:startup 并确定, 将登录的快捷方式拖进弹出的窗口,如果杀毒软件提示有程序想自启就点允许就可以了。

3. 更多

可以自己开发脚本或程序,设定特定条件后调用此程序,来实现更多的功能等等……


项目不足

由于使用 Python 语言开发:

  • 运行效率较低,特别是打包后的可执行文件,在打开时需要较长的加载时间;
  • 不能交叉编译,对应平台的可执行文件需要对应的平台进行打包,对于百花齐放拥有众多发行版的 Linux 来说,Ubuntu 打包的也不一定能在 Debian 中运行;

由于使用网页认证接口实现核心登录和登出功能:

  • 部分学校禁用了网页认证登录,只能通过客户端登录,该项目不适合这部分学校;
  • 需要提交验证码,项目通过使用 ddddocr 库来识别验证码,但是在打包时需要将模型文件也打包进行,带来额外的文件体积,而且部分系统可能无法运行。

而以上不足,都在我的新项目 go-esurfing 中得到解决。


免责声明

此项目仅供研究、学习和交流,请勿用于商业或非法用途, 开发者与协作者不对使用者负任何法律责任, 使用者自行承担因不当使用所产生的后果与责任。

This project is only for research, learning and exchange. Do not use it for commercial or illegal purposes. Developers and collaborators do not assume any legal responsibility for users. Users bear the consequences and responsibilities arising from improper use.


其他

广东天翼校园网 QQ 交流群:791455104 (点此加入

About

基于 Python 实现登录和登出广东天翼校园网的命令行工具

Topics

Resources

License

Stars

Watchers

Forks

Languages