Repository navigation
Releases: demo133/campusnet
Release list
校园网助手 v0.1.2 · 图形版
v0.1.2
- 新增新版 eportal 门户支持:认证接口为 portal/login(JSONP)的学校现在可以用了;运营商下拉框对应账号后缀(@cmcc / @unicom / @telecom),在向导里选好即可
- 探测识别增强:网关重定向地址里的门户参数参与指纹识别
- 修复开机自启崩溃:图形版里开启「开机自启」后重启弹「NoneType object has no attribute write」的问题已修复;旧版本写坏的启动项会在新版启动时自动修正
- 双击即可自动连网:已配置账号的情况下,打开程序检测到没联网会自动尝试连接一次
Windows 10 / 11(64 位)。下载 campusnet-gui.zip,解压后双击「校园网助手.exe」。
首次运行如遇 SmartScreen 提示,点「更多信息 → 仍要运行」;解压后找不到 exe 请看压缩包里的《使用说明》第 3 条。
校园网助手 v0.1.1 · 图形版
图形版修复(v0.1.1)
- 设置窗口在小屏 / 高缩放电脑上填不完表单:设置页现在可以滚动(滚轮 / 右侧滚动条),窗口也能缩放,高度自动适应屏幕
- 探测日志不再挤占填写区域
- 开机自启不再闪黑色终端窗口
- 新增守护进程单实例锁,避免重复启动互相干扰
Windows 10 / 11(64 位)。下载 campusnet-gui.zip,解压后双击「校园网助手.exe」即可。
首次运行如遇 SmartScreen 提示,点「更多信息 → 仍要运行」;解压后找不到 exe 请看压缩包里的《使用说明》第 3 条。
campusnet v0.1.0 · 校园网自动登录
campusnet v0.1.0
一条命令搞定校园网 Portal 认证。开机自动登录,断网自动重连。
第一个公开版本。零依赖、跨平台,自动识别学校用的认证系统。
已在真实校园网环境实测通过。
亮点
认识市面上主流的四类校园网认证系统,并自动认出来是哪一类
不用你翻文档、抓包、告诉它学校用的哪家。campusnet 会拉门户页面做指纹识别,
按置信度排序后逐个尝试。
| Provider | 认证系统 | 状态 |
|---|---|---|
drcom |
Dr.COM 城市热点 | ✅ 真实校园网环境实测 |
srun |
深澜 Srun(含 srun_bx1 自研编码) |
已实现,待验证 |
ruijie |
锐捷 Ruijie | 已实现,待验证 |
eportal |
华为 / 通用 eportal | 已实现,待验证 |
custom |
自定义模板 | ✅ |
零第三方依赖
只用 Python 标准库。HTTP 用 urllib,深澜的加密用 hashlib + 手写实现。
宿舍网络再差也能装上,不用担心 pip 拉一堆包失败。
联网判定不被白名单欺骗
很多学校会把 generate_204 这类探测地址加白名单,导致自动化工具误判"已经联上网了"。
campusnet 用两道关卡:先探测劫持,再抓真实网页校验内容,两关都过才算通。
装了就不用管
campusnet autostart installWindows 走注册表 Run 项(用 pythonw.exe 无窗口启动)、macOS 走 LaunchAgent、
Linux 走 systemd 用户服务——都不需要管理员权限。
守护模式每 10 分钟检查一次;网络恢复(比如学校夜里断网结束)后会自动重新认证。
联网正常时它完全安静,一行日志都不写。
安装
pip install git+https://github.com/demo133/campusnet.git要求 Python 3.8+,无第三方依赖。也可以克隆后直接 python -m campusnet 使用。
快速开始
campusnet setup # 交互式生成配置,自动探测你学校的认证方式
campusnet login # 登录一次试试
campusnet autostart install # 装成开机自启,完事想先看它能不能认出你学校:
campusnet detect实测情况
在 真实校园网环境 的真实门户上跑通:
$ campusnet detect --portal 10.20.30.1
✔ 门户地址:http://10.20.30.1
• HTTP:200 Server:DrcomServer1.0
• 页面标题:上网登录页
• client_ip:10.20.30.40
✔ 指纹识别结果:
drcom 1.00 Dr.COM 城市热点
eportal 0.85 通用 eportal / 华为 AC
自动识别出厂商,并按 1.00 / 0.85 的置信度排好了尝试顺序。43 个单元测试全部通过。
已知限制
srun/ruijie/eportal尚未在真实服务器上验证。 只有单元测试覆盖了
请求参数拼装和响应解析。如果你学校用的是这三家,欢迎跑一次并反馈结果——
成功和失败都有价值。detect在已联网状态下探测不到门户(Portal 页面只在未认证时出现),
这时需要手动指定:campusnet detect --portal 10.0.0.1。- 少数私有 Portal 没有任何可调用的接口,只能靠
customprovider 自己描述请求格式。
反馈
最需要的是更多学校的指纹样本。跑一下:
campusnet detect --verbose把输出发到 Issues
(记得先把账号、IP、MAC 打码)。通常加一条指纹规则就能支持一所新学校。
想自己动手加支持的,见 docs/providers.md。
致谢
感谢 @workbuddy 在协议勘察和实现过程中的协助。