当前位置: 首页 > news >正文

CAU校园网接路由器(备忘)


校园网是30元包月不限流量,3人拼,每人每月10元

1.路由器型号

TP-Link AX3000,京东购入,134.5,因为我们是实验室3个人拼,所以一个人不超过50元

2.路由器安装流程

拿到手接通电源,直接插上网线就行,一般实验室到处都是网口,但是我不知道宿舍可以用吗
网页输入10.3.191.9就会弹出自动跳转跳转有线网登录界面,输入学号密码登录即可

农大校园网连手机经常会掉,无感知绑定也没有用,所以问了一下我师兄他说写个python脚本就行。

3.python脚本使用方法

文件名campus_autologin.py
存放位置:我是存放到了桌面D:\Users\Administrator\Desktop\

3.1 配置虚拟环境(就第一次安装的时候配置就行)

(一般学计算机的都默认有anaconda和🪜就不讲这个了,其实我也不知道是不是一定需要🪜,直接说命令了)

conda create-nnetloginpython=3.11-yconda activate netlogin pipinstallplaywright playwrightinstallchromium

找到后台运行需要的pythonw的路径

where pythonw

输出结果
(netlogin) C:\Users\Administrator>where pythonw C:\Users\Administrator\.conda\envs\netlogin\pythonw.exe(有用) C:\Users\Administrator\AppData\Local\Programs\Python\Python311\pythonw.exe

3.2 首次测试

step1:打开anaconda prompt,输入上述5行命令(激活环境)
step2:把脚本的L37改成False测试(这个好像是可以可视化看到登录过程,后续改成True就不看了)
step3:把校园网注销
step4:运行程序:Anaconda Prompt 里:conda activate netlogincd /d D:\Users\Administrator\Desktoppython campus_autologin.py。看到浏览器自动登录、日志出现「网络正常 ✓」= 成功。

如果可以成功登录就行,下面开始配置开机自启

4.配置开启自启

把xml文件导入进去
输入Win+R—>taskschd.msc,操作—>导入任务,把xml文件导入进去就行,直接点击确定
在左侧的任务计划程序库里面就能看到校园网自动重连
判断进行有没有在运行,打开任务管理器,输入python,就能查到程序了
要把电脑设置成连接电源电脑不关机不睡眠。

5.代码(附件都有)

代码:

""" 校园网自动重连守护脚本(网页认证版 · Dr.COM 适配) -------------------------------------------------- 定时检测能否上外网,掉线时自动打开登录页、填账号密码、提交重新认证。 只操作可见登录框;用原生 DOM 点击触发登录,绕过元素遮挡/稳定性限制。 首次准备(Anaconda Prompt / 已激活 netlogin 环境): conda create -n netlogin python=3.11 -y conda activate netlogin pip install playwright playwright install chromium 运行: python campus_autologin.py # 前台,能看日志(调试用) pythonw campus_autologin.py # 无窗口后台运行(HEADLESS=True 时) 停止: Ctrl+C """importsysimporttimeimportloggingfromurllib.requestimporturlopen,Requestfromurllib.errorimportURLErrorfromplaywright.sync_apiimportsync_playwright# ============ 配置区:一般只改账号密码 ============LOGIN_URL="http://10.3.38.8"# 你的登录页地址USERNAME="学号"PASSWORD="密码"CHECK_INTERVAL=30# 在线时每隔多久探测一次RETRY_INTERVAL=10# 提交登录后多少秒再复查# 【重要】先用 False 测:能看到浏览器自动填表登录。# 确认成功后改成 True,才能无窗口后台运行、配开机自启。HEADLESS=True# =============================================# 国内连通性检测(返回 204 才算真能上外网;掉线被门户拦截会被重定向,据此识别)CHECK_URLS=["http://connect.rom.miui.com/generate_204","http://connectivitycheck.platform.hicloud.com/generate_204",]logging.basicConfig(level=logging.INFO,format="%(asctime)s %(message)s",datefmt="%H:%M:%S",handlers=[logging.StreamHandler(sys.stdout),logging.FileHandler("campus_autologin.log",encoding="utf-8"),],)log=logging.getLogger()defis_online()->bool:"""访问 generate_204,返回 204 才算真的能上外网。"""forurlinCHECK_URLS:try:req=Request(url,headers={"User-Agent":"Mozilla/5.0"})ifurlopen(req,timeout=5).getcode()==204:returnTrueexcept(URLError,OSError):continuereturnFalsedefwait_visible(page,selector:str,timeout_ms:int=8000):"""在 timeout 内轮询,返回第一个"可见"的匹配元素;跳过隐藏登录框里的重复元素。"""end=time.time()+timeout_ms/1000.0whiletime.time()<end:forelinpage.query_selector_all(selector):try:ifel.is_visible():returnelexceptException:passpage.wait_for_timeout(300)returnNonedefdo_login()->None:"""打开登录页 -> 填可见的账号/密码 -> 原生点击登录按钮(onclick=login)。"""log.info("检测到掉线,尝试重新登录 …")try:withsync_playwright()asp:browser=p.chromium.launch(headless=HEADLESS)page=browser.new_page()page.set_default_timeout(10000)page.goto(LOGIN_URL,wait_until="domcontentloaded")# 等到"可见"的密码框和用户名框(跳过隐藏登录标签页)pw=wait_visible(page,"input[type='password']")user=wait_visible(page,"input:not([type='password']):not([type='checkbox'])"":not([type='hidden']):not([type='submit'])"":not([type='button']):not([type='radio'])")ifnotpwornotuser:log.warning("没找到可见的登录框(可能已是登录状态,或页面没加载出来)")browser.close()returnuser.fill(USERNAME)pw.fill(PASSWORD)log.info("已填入账号密码,准备提交 …")# 提交:优先用原生 DOM click 触发按钮 onclick=login(),绕过遮挡/稳定性检查btn=wait_visible(page,"input[name='0MKKey']",3000)ifbtn:btn.evaluate("el => el.click()")log.info("已触发登录按钮(原生点击)")else:pw.press("Enter")log.info("未找到登录按钮,改用回车提交")page.wait_for_timeout(2500)# 兜底:若仍停留在登录页(还能看到可见密码框),再补一次回车still=wait_visible(page,"input[type='password']",1500)ifstill:log.info("疑似未提交成功,补一次回车兜底")try:still.press("Enter")exceptException:passpage.wait_for_timeout(2000)browser.close()log.info("登录动作已完成,等待网络恢复 …")exceptExceptionase:log.warning(f"登录过程出错:{e}")defmain()->None:log.info("校园网守护已启动,开始监测 …")whileTrue:ifis_online():time.sleep(CHECK_INTERVAL)else:do_login()time.sleep(RETRY_INTERVAL)if__name__=="__main__":try:main()exceptKeyboardInterrupt:log.info("已手动停止")
<?xml version="1.0" encoding="UTF-16"?><Taskversion="1.2"xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"><RegistrationInfo><Description>Campus net auto re-login</Description></RegistrationInfo><Triggers><LogonTrigger><Enabled>true</Enabled><Delay>PT30S</Delay></LogonTrigger></Triggers><Principals><Principalid="Author"><LogonType>InteractiveToken</LogonType><RunLevel>LeastPrivilege</RunLevel></Principal></Principals><Settings><MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy><DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries><StopIfGoingOnBatteries>false</StopIfGoingOnBatteries><AllowHardTerminate>true</AllowHardTerminate><StartWhenAvailable>true</StartWhenAvailable><RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable><IdleSettings><StopOnIdleEnd>false</StopOnIdleEnd><RestartOnIdle>false</RestartOnIdle></IdleSettings><AllowStartOnDemand>true</AllowStartOnDemand><Enabled>true</Enabled><Hidden>false</Hidden><RunOnlyIfIdle>false</RunOnlyIfIdle><WakeToRun>false</WakeToRun><ExecutionTimeLimit>PT0S</ExecutionTimeLimit><Priority>7</Priority></Settings><ActionsContext="Author"><Exec><Command>C:\Users\Administrator\.conda\envs\netlogin\pythonw.exe</Command><Arguments>"D:\Users\Administrator\Desktop\campus_autologin.py"</Arguments><WorkingDirectory>D:\Users\Administrator\Desktop</WorkingDirectory></Exec></Actions></Task>

http://www.jsqmd.com/news/1108160/

相关文章:

  • 抖音无水印下载终极解决方案:三步掌握高效批量下载技术
  • 【VMware音频失效黄金72小时】:从vSphere 7.0到8.0U2,6类声卡兼容性断点与热修复补丁清单
  • VMware虚拟机UEFI启动失败诊断树(附12个精准日志关键词+对应解决方案,95%问题5分钟定位)
  • WaveTools:解锁《鸣潮》120帧的终极优化方案
  • 中文论文参考文献排版终极指南:GB/T 7714标准完全实现方案
  • 轮廓仪选购预算参考:主流型号价格解析
  • 高效解锁Mediatek设备:mtkclient-gui专业指南
  • 30秒搞定文档下载:告别付费墙与繁琐验证的浏览器脚本神器
  • 【VMware与Hyper-V冲突终结指南】:20年虚拟化专家亲授5大底层冲突根源及秒级规避方案
  • 三步搞定网盘限速:开源直链助手让下载速度飞起来
  • 国内汽车锻件厂集中在哪些产区?
  • 时间漂移引发集群认证失败,日志报错“Clock skew detected”?VMware虚拟机时间不同步全链路排查手册,含vSphere 8.0最新补丁验证数据
  • VMware虚拟化双雄对决:Workstation vs ESXi——从开发测试到生产部署的7个决策红线(运维总监亲授)
  • 如何高效备份CSDN技术博客:三步实现永久离线保存
  • 现在不看就晚了!VMware即将废弃旧版Nested Hypervisor API——迁移至vSphere 9.0新架构的48小时紧急适配清单
  • 生成式AI治理三阶生长模型:从生存到进化的轻量落地框架
  • PS3游戏更新下载解决方案:从官方服务器获取游戏补丁的实用工具
  • 无监督聚类中的特征选择:可解释、可验证、可落地的三层校验法
  • GitHub下载慢?这个免费插件让你的下载速度提升50倍!
  • 终极Mac窗口置顶神器Topit:免费提升多任务效率的完整指南
  • 掌握六音音源修复:3步解锁稳定音乐播放体验
  • Topit:macOS窗口置顶工具终极指南,让你的重要窗口永远在前
  • 终极指南:3步将手机变身高清直播摄像头
  • 租游戏号总踩坑?主流租号渠道售后保障能力横向对比
  • R3nzSkin:5大核心技术揭秘《英雄联盟》游戏皮肤修改的终极实现方案
  • FTP传输难题不用愁,2026中小企业五大高效文件传输方案
  • Windows Docker部署SearXNG 解决JSON接口403 Forbidden 全网最细教程
  • PCF80如何用于母胎界面中的免疫细胞分型与空间邻域分析?
  • 2026PMP考完多久出成绩?查分流程、成绩单解读、拿证时间全攻略
  • 解锁Mac生产力新姿势,VMware虚拟化macOS实操手册:含EFI补丁、显卡加速、HiDPI适配三重硬核配置