河南工学院校园网无感认证

2025-11-19 22 0

10分钟搞定校园网自动登录:无黑窗+右下角通知+开机自启

🌟 开机10秒自动连网,切换WiFi自适应,新手零代码基础也能会!


一、前置准备(2分钟)

1. 安装Python(已装跳过)

  • 下载:Python官网(选3.7+版本,建议3.10+)
  • 安装:必须勾选「Add Python to PATH」(自动添加环境变量)
  • 验证:按Win+Rcmd,回车后输python --version,显示版本号即成功

2. 安装依赖库

打开cmd,逐行输入以下命令(输完回车等待安装):

pip install requests
pip install win10toast
  • 异常处理:若提示“pip不是内部命令”,改用:
    python -m pip install requests
    python -m pip install win10toast
    

二、核心步骤1:编写Python自动登录脚本(3分钟)

1. 创建存放目录

  • 桌面新建文件夹,命名「CampusWiFiAutoLogin」(路径示例:C:\Users\你的用户名\Desktop\CampusWiFiAutoLogin
  • 注意:路径避免中文、空格或特殊字符

2. 新建Python脚本

  • 进入文件夹,右键→「新建」→「文本文档」
  • 重命名为wifi_auto_login.py(后缀从.txt改为.py
  • 看不到后缀:文件夹顶部「查看」→勾选「文件扩展名」

3. 复制完整代码(仅改2处!)

打开wifi_auto_login.py,粘贴以下代码,仅修改账号密码占位符

import requests
import time
import logging
import uuid
import socket
from datetime import datetime
from logging import FileHandler
from win10toast import ToastNotifier

# -------------------------- 必须修改(填自己的信息) --------------------------
USERID = "你的校园网账号(含后缀如xxx@gxylocal)"  # 示例:"2507442107@gxylocal"
PASSWORD = "你的校园网密码"  # 示例:"12345678"
# -------------------------- 固定参数(无需修改) --------------------------
WLAN_AC_NAME = "HAIT-SR8808"
WLAN_AC_IP = "172.21.8.73"
PORTAL_PAGE_ID = 21
LOGIN_URL = "http://211.69.15.10:6060/quickauth.do"

# 日志配置
logger = logging.getLogger()
logger.setLevel(logging.INFO)
file_handler = FileHandler("campus_login_log.log", encoding="utf-8")
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

# 通知器初始化
toaster = ToastNotifier()

def send_notification(title, msg):
    """右下角通知(显示5秒)"""
    toaster.show_toast(title, msg, duration=5, threaded=True)
    time.sleep(0.5)

def get_current_wlan_ip():
    """自动获取当前WiFi内网IP(切换WiFi无需手动改)"""
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(("211.69.15.10", 6060))
        current_ip = s.getsockname()[0]
        s.close()
        return current_ip
    except Exception as e:
        logger.error(f"❌ 获取IP失败:{str(e)}")
        return None

def generate_login_params(current_ip):
    """生成登录参数(自动填充动态信息)"""
    return {
        "userid": USERID,
        "passwd": PASSWORD,
        "wlanuserip": current_ip,
        "wlanacname": WLAN_AC_NAME,
        "wlanacIp": WLAN_AC_IP,
        "ssid": "", "vlan": "", "mac": "",
        "version": 0, "portalpageid": PORTAL_PAGE_ID,
        "timestamp": int(datetime.now().timestamp() * 1000),
        "uuid": str(uuid.uuid4()),
        "portaltype": 0, "hostname": "", "bindCtrlId": ""
    }

def auto_login():
    current_ip = get_current_wlan_ip()
    if not current_ip:
        send_notification("登录失败", "无法获取内网IP,请检查WiFi")
        return False
    
    send_notification("自动登录", f"已获取IP:{current_ip},正在连接...")
    logger.info(f"开始登录(IP:{current_ip})")
    
    # 重试3次应对网络波动
    for i in range(3):
        logger.info(f"第{i+1}次尝试...")
        try:
            params = generate_login_params(current_ip)
            response = requests.get(
                LOGIN_URL, params=params, timeout=8, verify=False
            )
            response.encoding = "utf-8"
            res_text = response.text[:300]
            
            if "成功" in res_text or "认证成功" in res_text:
                logger.info("✅ 登录成功!")
                send_notification("自动登录", "登录成功!已连接网络")
                return True
            else:
                logger.warning(f"未成功,响应:{res_text}")
        except Exception as e:
            logger.error(f"第{i+1}次失败:{str(e)}")
        
        time.sleep(2)
    
    logger.error("❌ 3次尝试失败,请手动登录")
    send_notification("登录失败", "连接失败,请手动登录")
    return False

if __name__ == "__main__":
    time.sleep(5)  # 开机等待网络就绪
    auto_login()

4. 测试脚本

  • 双击wifi_auto_login.py,弹出黑窗(测试用)
  • 成功:右下角弹「登录成功」,能正常上网
  • 失败:查看文件夹内campus_login_log.log排查原因

三、核心步骤2:配置无黑窗启动(2分钟)

1. 新建VBS启动脚本

  • 进入「CampusWiFiAutoLogin」,右键→「新建」→「文本文档」
  • 重命名为start_wifi_silent.vbs(后缀从.txt改为.vbs

2. 复制VBS代码(改2处路径)

打开start_wifi_silent.vbs,粘贴以下代码,替换路径占位符:

' 无黑窗启动Python脚本
Set objShell = CreateObject("WScript.Shell")
' 第1个路径:pythonw.exe完整路径;第2个路径:wifi_auto_login.py完整路径
objShell.Run """你的pythonw.exe路径"" ""你的wifi_auto_login.py路径""", 0, False

3. 查询路径教程

(1)pythonw.exe路径

  • Win+Rcmd,输where python,复制路径(示例:C:\Users\用户名\AppData\Local\Programs\Python\Python310\python.exe
  • python.exe改为pythonw.exe

(2)wifi_auto_login.py路径

  • 右键脚本→「属性」→复制「位置」,拼接文件名(示例:C:\Users\用户名\Desktop\CampusWiFiAutoLogin\wifi_auto_login.py

4. 测试无黑窗启动

  • 双击start_wifi_silent.vbs,无黑窗弹出
  • 成功:5-10秒后弹登录通知

四、核心步骤3:设置开机自启(3分钟)

1. 打开启动文件夹

  • Win+R,输shell:startup,回车打开自启文件夹

2. 添加脚本到自启

  • 右键start_wifi_silent.vbs→「创建快捷方式」
  • 把快捷方式拖进启动文件夹

3. 配置管理员权限

  • 右键启动文件夹内的快捷方式→「属性」
  • 「快捷方式」→「高级」→勾选「以管理员身份运行」→确定

4. 最终测试

  • 重启电脑,等待10秒
  • 成功:弹出登录通知,能自动上网

五、常见问题排查

问题现象 解决方案
通知乱码 升级库:pip install --upgrade win10toast,或脚本开头加import sys; sys.stdout.encoding = 'utf-8'
开机未运行 重新创建快捷方式,检查路径是否正确
登录失败 核对账号密码,确认连接校园网WiFi
VBS无反应 where python重新查询路径,修正VBS中的路径
通知不显示 打开「设置→系统→通知」,开启通知权限

总结

核心3步:写Python脚本(填账号密码)→ VBS无黑窗启动 → 开机自启配置。配置后开机自动连网,切换WiFi无需手动操作,彻底告别重复输账号密码!

相关文章

day17-面向对象综合练习(下)
ArrayList&学生管理系统
String类
day02-Java基础语法
demo1
世界,您好!

发布评论