TL;DR:学校 Dr.COM 校园网掉线后要手动打开门户、输学号密码、点登录,太烦。我把它自动化了:Windows 开机自动登录 + 每 1 分钟检测补登,手机点一下主屏图标就登录,不需要装软件、不需要管理员权限、不需要服务器。
下载:https://wwbqh.lanzouc.com/iJH7I4bxy0ve | 密码:5b1a
一、受够了
我们学校的校园网用的是 Dr.COM 认证。它的日常是这样的:
- 挂着挂着就掉线,尤其是电脑待机/休眠回来、或者连着几天没重启
- 掉线后不会自动重连
- 每次都要:浏览器自动跳到门户页 → 输学号 → 输密码 → 点"登录"
- Windows 还特别"贴心":一断网就自己弹出门户页,生怕你不知道
一天折腾三五次,实在受不了了,于是我决定把它自动化。
二、最终效果
| 平台 | 效果 |
|---|---|
| Windows | 开机自动登录;掉线后最多 1 分钟自动补登;后台运行,连黑框都不会闪 |
| 安卓 | 浏览器打开一个网页文件就登录;或把网址存成书签 |
| iPhone | Safari 书签点一下 / 快捷指令一键运行,还能设置"连上校园网 WiFi 自动执行" |
| macOS / Linux | 一行命令,或加到 crontab |
特点:免安装、免管理员权限、不需要服务器。整个工具就是几个纯文本文件(HTML / BAT / PS1 / SH),你可以自己打开看它干了什么。
三、下载
蓝奏云:https://wwbqh.lanzouc.com/iJH7I4bxy0ve
密码:5b1a
下载后解压,里面所有文件都是纯文本,不含任何账号密码(每个人第一次用会提示填自己的),可以放心查看和转发。
四、文件说明
| 文件 | 用途 |
|---|---|
校园网一键登录.html |
网页版,双击/浏览器打开即用,手机电脑通用 |
登录校园网.bat |
Windows 双击即登录,不弹浏览器 |
设置自动登录.bat |
注册自动登录:开机一次 + 每分钟检测补登 |
取消自动登录.bat |
不想要了,双击这个 |
campus-login.ps1 |
Windows 脚本本体 |
校园网登录.sh |
macOS / Linux / 路由器 用 |
使用说明.md |
完整文档(含排错) |
五、怎么用
Windows:最省事
| 想干什么 | 双击这个 |
|---|---|
| 现在就要登录 | 登录校园网.bat |
| 以后全自动 | 设置自动登录.bat |
| 不要自动了 | 取消自动登录.bat |
设置自动登录.bat 会让你输入一次学号和密码,之后:
- 开机自动登录(在启动文件夹放一个快捷方式)
- 每 1 分钟检查一次(计划任务
CampusAutoLogin),掉线自动补登
账号密码保存在 %LOCALAPPDATA%\campus-login\config.json,用 Windows 当前用户密钥(DPAPI)加密,换台电脑或换个用户都解不开。
它很"克制":每分钟只是查一下在线状态,在线就什么都不做,不会反复登录刷认证。
想看它到底有没有在干活?看日志就行:
Get-Content "$env:LOCALAPPDATA\campus-login\auto-login.log" -Tail 20每次运行都会记下结果,登录时还会记下请求的 URL 和门户返回内容。
安卓
- 把
校园网一键登录.html拷到手机 - Chrome 地址栏输入
file:///sdcard/Download/校园网一键登录.html - 填一次账号密码 → 勾"记住账号密码" → 以后打开就自动登录
- 也可以选"添加到主屏幕",变成一个 App 图标
iPhone
iPhone 上「文件」App 直接点 html 只会预览源码、不执行脚本,所以用这两种:
方案 1:Safari 书签(最简单)
新建一个书签,网址填(把中文换成你自己的):
http://10.7.250.8/drcom/login?DDDDD=你的学号&upass=你的密码&0MKKey=123456&R1=0&R3=0&R6=0¶=00&v6ip=
以后连上校园网,点这个书签就已经登录了(页面会显示一串英文,直接返回即可)。
方案 2:快捷指令(可自动触发)
- 打开「快捷指令」→ 新建
- 加「URL」,粘贴上面那条网址
- 加「获取 URL 内容」(方法 GET)
- 加「显示通知」,内容写"校园网已登录"
- 命名为"校园网登录",可"添加到主屏幕"
- 自动化(可选):快捷指令 →「自动化」→ 新建 →「Wi-Fi」→ 选校园网 →「已加入」→ 运行"校园网登录" → 关掉"运行前询问"
以后一连上校园网就自动登录,完全不用管。
macOS / Linux
sh 校园网登录.sh # 第一次会提示输入账号密码,自动保存
sh 校园网登录.sh -setup # 改账号密码
sh 校园网登录.sh -logout # 注销下线
开机自动登录,加到 crontab -e:
* * * * * /bin/sh /你的路径/校园网登录.sh >/dev/null 2>&1
六、原理:它其实就是个 GET 请求
顺手扒了一下门户的登录流程。这个 Dr.COM 门户(Server: DrcomServer1.0)的登录本质就是一个 GET 请求,而且原生支持 JSONP(callback= 参数),所以纯网页就能跨域调用——这就是为什么不需要服务器、不需要装 App。
| 功能 | 接口 |
|---|---|
| 查询在线状态 | http://<服务器>/drcom/chkstatus?callback=cb&jsVersion=3.3.2 |
| 登录 | http://<服务器>/drcom/login?callback=cb&DDDDD=账号&upass=密码&0MKKey=123456&R1=0&R3=0&R6=0¶=00&v6ip=&v=随机数 |
| 注销 | http://<服务器>/drcom/logout?callback=cb |
返回 "result":1 就是成功/在线,"result":0 是失败/离线。
所以整个工具的逻辑很简单:先查状态 → 没在线才登录 → 登录后再查一次状态做校验。绝不瞎发包。
我们学校有两台认证服务器(无线和有线各一台),工具会先探测拿到本机在校园网里的 IP,按地址段判断该用哪台,猜错了会自动换另一台重试。
说一下局限:这套参数和服务器地址是针对我们学校的。别的学校虽然大概率也是 Dr.COM,但服务器 IP、参数会不一样,需要自己改。
七、踩过的两个坑(这部分最有意思)
坑 1:参数顺序 —— "有时能登上,有时登不上"
这是最坑的一个。
我第一版脚本写完,测试通过,结果挂上自动运行后时好时坏:状态查询一切正常,判断也准确,可就是登不上去,门户返回一句很含糊的:
<html><body>Error code: 203 Bad request(2)</body></html>
排查了很久才发现:Dr.COM 内核是按参数「位置」解析查询串的——callback 必须是第 1 个参数、DDDDD 必须是第 2 个。顺序一错,账号密码再对也没用。
实测对照(同一个账号密码,只改顺序):
| 参数顺序 | 结果 |
|---|---|
callback, DDDDD, upass, 0MKKey, R1, R3, R6, para, v6ip, v |
✅ 登录成功 |
callback, DDDDD, v, upass, ... |
✅ 成功(v 在 DDDDD 后面就行) |
callback, v, DDDDD, upass, ... |
❌ Bad request(2) |
callback, R1, upass, ...(乱序) |
❌ Bad request(2) |
少了 callback |
❌ 404 URL no found |
而大多数编程语言里,哈希表/字典的遍历顺序是随机或不确定的。所以这个 bug 表现出来就是"玄学":同一份代码,跑十次总有两三次失败。
改成按门户原生顺序显式拼接参数之后就 100% 稳定了。
顺带说一句:URL 里那个
v=后面每次都不同的数字,只是随机的防缓存参数,值不重要——位置才重要。
坑 2:每分钟屏幕闪一下黑框
自动登录跑起来之后,用户(我)反馈:屏幕偶尔"啪"地闪一个黑框,瞬间消失。
原因是我用计划任务每分钟调 powershell.exe,虽然加了 -WindowStyle Hidden,但这个参数并不可靠:Windows 创建控制台窗口的顺序是"先创建、再按参数隐藏",中间那一瞬间窗口是真的会显示出来的。
解决办法是用 wscript 中转一层——VBScript 的 WshShell.Run 可以指定"以隐藏窗口方式创建进程":
Set sh = CreateObject("WScript.Shell")
sh.Run "powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File ""C:\...\campus-login.ps1"" -Quiet", 0, False
最后那个 0 就是隐藏窗口。实测采样对比:
| 启动方式 | 是否出现窗口 |
|---|---|
powershell -WindowStyle Hidden |
会出现窗口(就是那个黑框) |
wscript → VBS → powershell |
完全没有窗口 ✅ |
八、常见问题
Q:提示"无法连接认证服务器"?
说明还没连上校园网,先连 WiFi 或插网线再运行。
Q:显示已在线,但还是上不了网?
可能是账号在别的设备登录被顶掉了。点网页版里的"注销下线",等 3 秒再点"立即登录"。
Q:网页版点了没反应 / 一直"正在检测"?
部分浏览器不允许本地文件(file://)请求 http 接口。勾选界面上的「兼容模式」再试;或者 Windows 直接用 .bat,手机用书签。
Q:iPhone 上打开 html 只看到一堆代码?
那是「文件」App 的预览,不执行脚本。用上面的 Safari 书签或快捷指令。
Q:移动了文件夹,自动登录失效了?
静默启动器里记的是脚本绝对路径,重新双击一次 设置自动登录.bat 即可。
Q:会被学校发现 / 封号吗?
这只是把你手动点"登录"的动作自动化了,请求参数和浏览器完全一致,不涉及破解、不绕过计费。正常使用没有风险。但别把带密码的链接发到群里。
九、安全说明
- 校园网门户本身用 http 明文传输密码,这是学校的设计,任何客户端(包括官方客户端)都一样。
- Windows 版密码存在你本机
%LOCALAPPDATA%\campus-login\config.json,用 DPAPI 按当前用户加密。 - 网页版的账号密码只存在你自己浏览器的 localStorage 里,不会上传到任何地方。
- 工具不含任何人的账号密码,可以放心转给同学,每人填自己的。
- 唯一的"明文"场景是 iPhone 书签/快捷指令方案(网址里带密码),介意的话可以在快捷指令里把密码设成运行时输入。
