CAU校园网一键自动登录工具(Windows / 安卓 / iPhone)

观众 发布于 阅读:135

TL;DR:学校 Dr.COM 校园网掉线后要手动打开门户、输学号密码、点登录,太烦。我把它自动化了:Windows 开机自动登录 + 每 1 分钟检测补登,手机点一下主屏图标就登录,不需要装软件、不需要管理员权限、不需要服务器。
下载:https://wwbqh.lanzouc.com/iJH7I4bxy0ve | 密码:5b1a


一、受够了

我们学校的校园网用的是 Dr.COM 认证。它的日常是这样的:

一天折腾三五次,实在受不了了,于是我决定把它自动化。

二、最终效果

平台 效果
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 会让你输入一次学号和密码,之后:

账号密码保存在 %LOCALAPPDATA%\campus-login\config.json,用 Windows 当前用户密钥(DPAPI)加密,换台电脑或换个用户都解不开。

它很"克制":每分钟只是查一下在线状态,在线就什么都不做,不会反复登录刷认证。

想看它到底有没有在干活?看日志就行:

Get-Content "$env:LOCALAPPDATA\campus-login\auto-login.log" -Tail 20

每次运行都会记下结果,登录时还会记下请求的 URL 和门户返回内容。

安卓

  1. 把 校园网一键登录.html 拷到手机
  2. Chrome 地址栏输入 file:///sdcard/Download/校园网一键登录.html
  3. 填一次账号密码 → 勾"记住账号密码" → 以后打开就自动登录
  4. 也可以选"添加到主屏幕",变成一个 App 图标

iPhone

iPhone 上「文件」App 直接点 html 只会预览源码、不执行脚本,所以用这两种:

方案 1:Safari 书签(最简单)

新建一个书签,网址填(把中文换成你自己的):

http://10.7.250.8/drcom/login?DDDDD=你的学号&upass=你的密码&0MKKey=123456&R1=0&R3=0&R6=0&para=00&v6ip=

以后连上校园网,点这个书签就已经登录了(页面会显示一串英文,直接返回即可)。

方案 2:快捷指令(可自动触发)

  1. 打开「快捷指令」→ 新建
  2. 加「URL」,粘贴上面那条网址
  3. 加「获取 URL 内容」(方法 GET)
  4. 加「显示通知」,内容写"校园网已登录"
  5. 命名为"校园网登录",可"添加到主屏幕"
  6. 自动化(可选):快捷指令 →「自动化」→ 新建 →「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&para=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:会被学校发现 / 封号吗?
这只是把你手动点"登录"的动作自动化了,请求参数和浏览器完全一致,不涉及破解、不绕过计费。正常使用没有风险。但别把带密码的链接发到群里。


九、安全说明

脚本工具

订阅更新
输入邮箱,第一时间接收本站新文章推送。
请先 登录 再评论
收到1条评论
avatar
观众 13 天前
有一个说法是如果学校的英文缩写不如KFC有名,就不要提出来。刚好冷门缩写配冷门网站,这都能搜到这篇文章的人,一定会是校友吧?