Skip to content
This repository was archived by the owner on May 7, 2026. It is now read-only.

TYOPXN360/GDUST-Auto-Login

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 

Repository files navigation

广东科技学院(南城校区)校园网自动认证登录脚本 — README

简介

本脚本为广东科技学院(南城校区)校园网定制的 PowerShell 自动认证工具。功能涵盖一次性认证、断网后自动重连(防断联,前台模式),并提供命令行参数快速控制。脚本以严格的无线网卡信息(仅 IPv4 + MAC)作为认证依据,注重稳定性与最小化提示输出:仅在重要事件(断网、重连、错误)时输出信息,避免干扰。

主要特性

  • 一键完成校园网认证全流程(自动获取网卡 IP/MAC、两步提交、轮询校内接口以确认登录)
  • 防断联:前台守护模式,检测到断网时才输出提示并进行有限次自动重连
  • 参数控制:支持 -y(认证成功后自动进入防断联前台运行)和 -n(认证成功后不启动防断联)
  • 交互提示:认证结束与脚本退出均要求“按任意键退出”,避免错过信息
  • 自动保存凭据:首次输入后保存到同目录 zhanghao.json,下次可免交互
  • 兼容不同 PowerShell 版本的兼容性处理(如 Get-Job 参数集差异、相对路径拼接等)

文件说明

  • auth.ps1 — 主脚本(将脚本名替换为发布版本名如 authVX.X.ps1
  • zhanghao.json —(首次认证后自动生成)保存账号与密码,请妥善保管

环境要求

  • 操作系统:Windows 10/11(建议 PowerShell 5.1 及以上)
  • 依赖:系统自带 curl.exe(用于备用的 HTTP 检测)
  • 网络:已连接校园 WLAN 或有线网,能获取 IPv4 地址的真实网卡(非虚拟)

快速开始

下载与运行

  1. 在 Release 下载 ZIP 并解压到任意目录。
  2. 以 PowerShell 运行脚本所在目录,执行:
    .\auth.ps1

命令行参数

  • -y:认证成功后自动启动防断联(前台模式),无需交互
    示例:.\auth.ps1 -y.\auth.ps1 -y username password
  • -n:认证成功后不启动防断联,自动退出
    示例:.\auth.ps1 -n

备注:-y-n 互斥,不可同时使用;提供 username/password 时可省去首次交互输入。

输出与提示策略

  • 脚本在关键步骤打印简洁信息:网卡(名称、IP、MAC)、认证步骤状态、认证结果。
  • 防断联守护进程在正常连通时不输出;仅在检测到断网、开始重连、重连成功或重连全部失败时输出提示,避免频繁日志干扰。
  • 所有最终退出都要求按任意键确认,防止信息遗漏。

核心检测与策略(简要)

  • 外网连通性检测:默认检测目标为 https://www.baidu.com/,使用 Invoke-WebRequest,失败时尝试 curl.exe。超时与重试可在脚本变量中调整。
  • 认证判定:先 POST 初始登录(从 HAR 提取的参数),解析并处理二次地址(支持相对路径拼接);随后 POST 二次登录并轮询 ajax_webauth?action=radius&ip=... 以确认 ret=0。最后再做一次外网 HTTP 检测确保出口可达。
  • 防断联逻辑:周期检测(默认 10 秒)→ 若检测到断网则触发最多 N 次重连(默认 3 次,每次间隔 2 秒)→ 若重连成功恢复检测;若重连失败等待下一周期再试。

默认关键参数(可在脚本顶部修改)

  • $watchdogIntervalSec = 10 — 防断联检测间隔(秒)
  • $watchdogRecoveryRetries = 3 — 断网时每轮重连尝试次数
  • $httpTimeoutSec = 8 — HTTP 请求超时(秒)
  • $pollIntervalSec = 1 — 检查 ajax_webauth 的轮询间隔(秒)
  • $pollAttempts = 10 — 轮询最大次数(次)
  • $extraHttpRetries = 3 — 首次 HTTP 检测失败后的额外重试次数

使用示例

交互式(默认)

.\auth.ps1
# 脚本提示输入账号/密码(首次会保存),认证成功后提示是否启动防断联,输入 Y 启动

自动前台守护

.\auth.ps1 -y
# 认证成功后直接进入前台防断联,按 Ctrl+C 停止(随后按任意键退出)

只认证不守护

.\auth.ps1 -n
# 认证成功后直接退出(仍需按任意键确认退出)

带账号密码(免交互)

.\auth.ps1 -y 202301001 mypassword

常见问题

  • 未能获取网卡 IPv4 或 MAC:确认已连接到校园 WLAN 或以太网;脚本只识别物理无线/有线网卡,忽略虚拟适配器。
  • “无效的 URI” 或相对路径问题:脚本已对相对路径(如以 / 开头的 action)做自动拼接并回退默认内部地址以避免失败。
  • 频繁被踢线或重连失败:可能因账号在多设备登录或校网限制;建议检查账号状态或增加重连间隔/减小重连频率。
  • 脚本被阻止运行:执行一次性设置(仅限当前用户):
    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

安全与隐私

  • 脚本会在首次成功输入账号/密码后将凭据以明文保存在脚本同目录 zhanghao.json,便于下次免交互登录。请在多人共用的设备上谨慎使用并妥善保护该文件。若需移除凭据,直接删除该文件即可。

进阶与定制建议

  • 若需要将守护进程改为后台 Job、计划任务或 Windows 服务,可在脚本基础上做扩展(推荐先实现“退出标志文件”机制以便跨会话停止)。
  • 若校园内出口非公网站点更稳定,可将 $connectivityUrl 调整为校内的稳定地址以降低误判。
  • 若要启用更温和的退避策略(连续多轮失败后延长下一次检测间隔),可在防断联逻辑中加入指数退避。

反馈与更新

若校方更改认证接口或你遇到特殊场景(例如 portal 返回其它已在线提示文本),欢迎将具体响应片段提供后我可以帮你调整脚本的解析逻辑以兼容。


版权所有 © 广东科技学院(脚本仅作便利用途,使用者应遵守校内网络使用规范)

About

广东科技学院(南城校区)校园网自动认证登录脚本

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors