Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CampusNet AutoLogin

通用校园网自动登录脚本,适用于很多基于 Dr.COM / eportal / JSONP 登录接口的高校校园网。

它的核心思路是:你在浏览器开发者工具里复制一次真实登录请求 URL,脚本会把它转换成可复用的参数模板。后续脚本会自动检测当前 Wi-Fi、判断是否已经联网、获取访问认证服务器时使用的本机 IPv4,然后请求校园网登录接口。

这个工具只适合自动化你自己有权使用的校园网账号。不同学校的认证系统差异很大,如果你的学校使用短信、验证码、二次认证、动态签名或加密挑战,本脚本可能需要额外适配。

Features

  • 支持从完整登录 URL 自动生成配置
  • 支持常见 eportal / Dr.COM GET 登录接口
  • 支持 GET 和 POST 表单请求
  • 支持 Windows 用户加密保存密码
  • 支持明文密码模式,便于开机后、用户登录前以 SYSTEM 计划任务运行
  • 自动检测 SSID,避免在非校园网环境误请求
  • 自动检测是否已经联网,避免重复登录
  • 自动获取 wlan_user_ip / client_ip 一类本机 IPv4 参数
  • 支持计划任务:用户登录后运行,或开机后用户登录前运行

Requirements

  • Windows 10/11
  • Windows PowerShell 5.1
  • 校园网登录接口可以被普通 HTTP GET/POST 请求复现

Quick Start

打开 PowerShell,进入项目目录:

cd path\to\campus-net-autologin

首次配置:

powershell -ExecutionPolicy Bypass -File .\CampusNetLogin.ps1 -Setup

按提示填写:

  • 校园 Wi-Fi 名称 SSID,可留空不限制
  • 浏览器开发者工具中复制的完整登录请求 URL
  • 校园网账号
  • 校园网密码

手动运行一次:

powershell -ExecutionPolicy Bypass -File .\CampusNetLogin.ps1 -Once

默认配置和日志位置:

  • C:\ProgramData\CampusNetAutoLogin\config.json
  • C:\ProgramData\CampusNetAutoLogin\login.log

How To Capture Login URL

  1. 连接校园 Wi-Fi。
  2. 打开浏览器,进入任意网页,等待跳转到校园网认证页。
  3. 打开开发者工具,进入 Network / 网络 面板。
  4. 手动登录一次。
  5. 找到类似下面的请求:
/eportal/portal/login?callback=...&login_method=1&user_account=...&user_password=...&wlan_user_ip=...
  1. 复制完整 URL,运行 -Setup 时粘贴。

脚本会自动把常见字段替换成模板:

  • user_account, account, username -> {{account}}
  • user_password, password, pwd -> {{password}}
  • wlan_user_ip, client_ip, user_ip -> {{local_ip}}
  • v, t, timestamp 等 -> 随机值或时间戳

Install Scheduled Task

用户登录后自动运行:

powershell -ExecutionPolicy Bypass -File .\Install-CampusNetTask.ps1

开机后、用户登录前自动运行:

powershell -ExecutionPolicy Bypass -File .\CampusNetLogin.ps1 -Setup -PlainTextPassword
powershell -ExecutionPolicy Bypass -File .\Install-CampusNetTask.ps1 -BeforeLogon

-BeforeLogon 会把任务注册为 SYSTEM 账户运行。由于 SYSTEM 无法解密当前 Windows 用户加密的密码,所以需要先用 -PlainTextPassword 生成配置。

注意:用户登录前能否成功,取决于 Windows 是否已经在登录界面前自动连接校园 Wi-Fi。请确保该 Wi-Fi 配置为自动连接。

Configuration

配置文件是 JSON,可以手动调整。核心字段:

{
  "CampusSSID": "campus-wifi",
  "LoginUrl": "http://portal.example.edu:801/eportal/portal/login",
  "Method": "GET",
  "UserAccount": "your-account",
  "Parameters": {
    "user_account": "{{account}}",
    "user_password": "{{password}}",
    "wlan_user_ip": "{{local_ip}}",
    "v": "{{random4}}"
  }
}

可用模板变量:

  • {{account}}:配置中的账号
  • {{password}}:配置中的密码
  • {{local_ip}}:访问认证服务器时使用的本机 IPv4
  • {{local_ipv6}}:预留 IPv6,当前为空
  • {{random4}}:1000 到 9999 的随机数
  • {{timestamp}}:UTC Unix 毫秒时间戳

示例配置见 examples/eportal.config.example.json

Troubleshooting

查看日志:

Get-Content C:\ProgramData\CampusNetAutoLogin\login.log -Tail 80

如果脚本提示已经请求登录但无法联网:

  • 确认复制的是登录接口 URL,而不是认证页 HTML URL。
  • 检查 config.json 里的参数名是否和学校接口一致。
  • 如果学校接口需要 POST,把 Method 改成 POST
  • 如果认证系统返回中文成功提示但脚本不识别,把提示关键词加入 SuccessPatterns
  • 如果访问测试网站被学校拦截,可修改 ConnectivityTestUrls

Security

默认 -Setup 会使用当前 Windows 用户凭据加密密码。只有当前用户、当前机器能解密。

-PlainTextPassword 会把密码明文保存到配置文件,只建议在你明确需要开机后用户登录前运行计划任务时使用。

License

MIT

About

Generic Windows PowerShell auto login tool for campus networks such as Dr.COM/eportal.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages