Skip to content

About

Windows campus network ePortal automatic login and reconnect tool

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

SchoolWeb AutoConnect

Release License Platform

面向 Windows 10/11 的校园网 ePortal 自动连接工具。它会在用户登录 Windows 后后台运行,检测到未联网时直接调用门户接口认证,不打开浏览器窗口;认证成功后继续监测,掉线时自动重试。

当前版本根据截图中的门户特征实现:172.16.54.18/eportal/success.jsp、锐捷 ePortal 的 InterFace.do?method=login 接口,以及 Microsoft Connect Test 网络探测地址。

下载与安装

普通用户请从 Releases 下载 SchoolWebAutoConnect-0.2.0-win64.zip,完整解压后双击 install_one_click.cmd,按提示填写自己的校园网账号和密码。安装成功后可以删除解压目录。

发布包没有数字签名,Windows 首次运行时可能显示安全提醒。请只从本仓库 Release 下载,并使用同页提供的 SHA-256 文件校验完整性。

有关未签名程序、官方来源、校验值边界和凭据保护的说明,请阅读 SECURITY.md。

使用

源码运行只依赖 Python 标准库;正式发布包使用 Python 3.13 构建,目标电脑无需安装 Python。

cd D:\projectbuilding\SchoolWeb_Autoconnect
python autoconnect.py setup
python autoconnect.py check
python autoconnect.py login
python autoconnect.py install

setup 会把配置保存到当前 Windows 用户的 %LOCALAPPDATA%\SchoolWebAutoConnect\config.json,密码通过 Windows DPAPI 按当前用户加密保存,不会写入 Git 仓库。打包版执行 install 时会先把程序复制到 %LOCALAPPDATA%\SchoolWebAutoConnect\app\0.2.0\SchoolWebAutoConnect.exe,因此安装后可以移动或删除原发布目录。程序默认注册 Windows 任务计划;如果系统拒绝普通用户创建任务计划,会自动改用当前用户的 Windows“启动”文件夹。

后台监控遇到临时网络异常会自动退避重试,并使用单实例锁防止重复运行。日志保存在 %LOCALAPPDATA%\SchoolWebAutoConnect\schoolnet_autoconnect.log,每个文件最大 1 MiB,保留 3 个备份。

常用命令:

python autoconnect.py check       # 只检查网络,不登录
python autoconnect.py login       # 登录一次并验证网络
python autoconnect.py watch       # 前台持续监测
python autoconnect.py uninstall   # 删除程序和开机入口,保留配置与日志

配置说明

config.example.json 是不含账号密码的模板。service: "auto" 会读取门户的 pageInfo,自动把显示名“校园网”映射为内部服务值 default;若需要其他运营商,也可以填写登录页显示名或内部值。如果自动识别不到未登录页面,可以把未登录时浏览器地址栏中的完整地址填入 login_url。

password_encrypt 支持:

  • auto:读取登录页的 passwordEncrypt 配置;
  • false:按明文表单字段提交;
  • true:按 ePortal 页面使用的 RSA 格式加密,必要时填写 public_key_exponent 和 public_key_modulus。

如果门户启用了图形验证码、运营商账号/密码或强制改密,程序会记录明确错误,不会尝试绕过验证码或修改密码。

为避免账号密码被异常重定向页面获取,认证请求只允许提交到 portal_base_url 所配置的主机。当前默认主机为 172.16.54.18。

测试

测试使用本地桩数据,不会访问真实校园网,也不会提交认证请求:

python -m unittest discover -s tests -v

参考项目

实现思路参考了公开的校园网自动认证项目,但没有复制其账号密码或运行配置:

如需复用第三方代码,应继续核对对应仓库的 LICENSE 和当前版本兼容性。

构建一键发布包

构建机使用 Python 3.13,并通过 requirements-build.txt 固定 PyInstaller 版本:

py -3.13 -m pip install -r .\requirements-build.txt
powershell -ExecutionPolicy Bypass -File .\build_release.ps1

脚本会生成 release 目录、SchoolWebAutoConnect-0.2.0-win64.zip 和对应的 .sha256 校验文件。把 ZIP 解压到目标电脑后双击 install_one_click.cmd;首次运行填写账号密码,程序会完成登录验证和开机自动连接安装。需要修改账号密码时双击 configure_one_click.cmd,卸载时双击 uninstall_one_click.cmd。

作者与许可证

维护者:impecme

本项目使用 MIT License。提交公开 Issue 时请勿附带校园网密码、DPAPI 密文、完整配置文件或包含个人信息的日志。

About

Windows campus network ePortal automatic login and reconnect tool

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages