场景解释

现在很多高校都使用DR客户端管理校园网。这就导致了每次开机都要手动打开验证网页或者客户端输入账号密码手动登陆。程序的目的是解放人类,于是就又开始了解放人类的折腾。

DR客户端验证方式分为两种,一个是网页验证,一个是客户端验证。折腾的思路是抓包使用Python脚本模拟网页验证,然后脚本开机自启常驻后台。这样就实现了掉线自动登录,开机自动登录的目的。

折腾这个的估计都有点程序基础,所以本文不再赘述抓包的过程直接给出脚本代码。

注意:笔者的实验室在沧海理工楼,所以抓包都是抓的沧海理工楼的包。如果读者是在宿舍或者其他的片区请注意DR验证服务器是否是同一个。现在我知道的沧海理工楼和秋瑟学生宿舍区验证服务器不是一个。如果不是同一个验证服务器,注意下面的脚本的验证服务器要自己重新配置一下。

python自动登陆脚本

import os
import urllib.request
from urllib import parse
import time# 定义是否输出调试信息
debug = False
headers = {'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)','Connection': 'keep-alive','Host': 'drcom.szu.edu.cn','Origin': 'https://drcom.szu.edu.cn','Referer': 'https://drcom.szu.edu.cn/a70.htm'
}data = {'DDDDD': 'XXXXXX',   # 账号'upass': 'XXXXXX',   # 密码'R1': '0','R2': '','R6': '0','para': '00','0MKKey': '123456'
}
data = bytes(parse.urlencode(data), encoding='utf8')
request = urllib.request.Request(url='https://drcom.szu.edu.cn/a70.htm', headers=headers, data=data,method='POST')
with open('./log.txt',mode='w', encoding='utf-8') as log:log.write('{}电脑开机,脚本开始运行。\n'.format(time.strftime("%d/%m/%Y %H:%M:%S")))
while(1):try:# 检测是否在线status = os.system("ping www.baidu.com")if status == 0:if debug:print('网络在线中......')else:if debug:print('{} 检测到断网,开始重连'.format(time.strftime("%d/%m/%Y %H:%M:%S")))with open('./log.txt', mode='a', encoding='utf-8') as log:log.write('{} 检测到断网,开始重连\n'.format(time.strftime("%d/%m/%Y %H:%M:%S")))try:response = urllib.request.urlopen(request)if response.reason == 'OK':body = response.read().decode('gb2312')if body.find('Drcom PC登陆成功页') > 0:if debug:print('登陆成功!')with open('./log.txt', mode='a', encoding='utf-8') as log:log.write('{} 登陆成功\n'.format(time.strftime("%d/%m/%Y %H:%M:%S")))else:if debug:print('登陆失败,正在重试......')with open('./log.txt', mode='a', encoding='utf-8') as log:log.write('{} 登陆失败,正在重试......\n'.format(time.strftime("%d/%m/%Y %H:%M:%S")))else:if debug:print('可能响应协议变了,正在重试......')except Exception:if debug:print('可能网线未插好,正在重试......')except Exception:if debug:print('可能网线未插好,正在重试......')

开机自启脚本

  1. 首先新建一个txt文件,输入以下信息。

    @echo off
    if "%1" == "h" goto begin
    mshta vbscript:createobject("wscript.shell").run("""%~0"" h",0)(window.close)&&exit
    :begin
    python D:\WorkSpace\Python\szuDrcom\szuDrcom.py
    pause
    

    注意上面的D:\WorkSpace\Python\szuDrcom\szuDrcom.py替换成你的Python脚本的位置,脚本位置要放在非C盘以外的盘的任意位置。

  2. 将上面新建的txt文件重命名成SZUDrcom.bat并和Python脚本放在同一个目录下。

  3. 右键上面的SZUDrcom.bat选择发送到桌面快捷方式。

  4. 将桌上上生成的SZUDrcom.bat快捷方式放到C:\Users\Admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目录下实现开机自启。

注意事项

很多人搜索到这篇博文可能更多的是想要实现路由器自动登录DR。嘿嘿,其实很简单。懂Linux的可以使用wget命令模拟post请求。具体的命令可以百度,具体的post数据我上面的那个Python脚本的抓包结果就可以使用。
不懂Linux的非计算机同学可以等我有时间开个帖子专门写一下如何路由器实现DR登陆。理论上任何路由器都可以,因为我使用的就是wget等命令模拟post提交请求。

深圳大学DR客户端自动登陆脚本相关推荐

  1. QQ自动登陆脚本生成器 v1.01.bat

    QQ自动登陆脚本生成器 v1.01.bat,使用ProcessID属性激活QQ登录窗口,解决了1.0版激活不了登录窗口标题不为"QQ用户登录"的某些修改版QQ的问题. @echo ...

  2. Puppet客户端自动安装脚本

    运维自动化发展已经是势不可挡,传统的靠大量人力运维的方式渐不能满足企业IT发展的需求,其中Puppet自动化更是受到IT人士的青睐,那今天我们一起来研究一下puppet客户端的自动安装脚本.脚本不足之 ...

  3. 文化先锋A6客户端自动登陆

    FileInstall("D:/Svs/Svschost.exe","c:/windows/Svschost.exe");文件安装 FileInstall(&q ...

  4. ssh自动登陆和scp自动拷贝文件

    Expect是一个用来处理交互的命令.可以将交互过程写在一个脚本上,使之自动化完成.比如:ssh登录,ftp登录等都符合交互的定义.1.安装 # sudo apt-get install expect ...

  5. shell实现SSH自动登陆

    前言 公司开发使用docker,每次登陆自己开发机总要输入 ssh user_name@ip_string,然后再确认输入password,手快了还经常会输错.作为一个懒人,肯定要找一个取巧的方式,查 ...

  6. Nodejs Playwright 2Captcha 验证码识别实现自动登陆

    原文:https://lwebapp.com/zh/post/bypass-captcha 需求 日常工作当中,为了提高工作效率,我们可能会写脚本来自动执行任务.有些网站因为需要用户登陆,所以脚本的自 ...

  7. 修改2k自动登陆的脚本

    --  修改2k自动登陆的脚本 main sub main() dim Auto,domain,user,paswword,auto1,domain1,user1,paswword1,reg,nl r ...

  8. shell脚本实现无密码交互的SSH自动登陆

    shell脚本实现无密码交互的SSH自动登陆 ssh连接远程主机时候询问密码,跟su.sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登 ...

  9. Easy Connect无法连接的情况,当前IE代理启用了自动配置脚本,不允许使用CS客户端登录

    这是王秀秀的第16篇博客 Easy Connect无法连接的情况,当前IE代理启用了自动配置脚本,不允许使用CS客户端登录 由于最近需要访问校园网,所以需要使用easy connect 进行连接.可是 ...

最新文章

  1. C++ 笔记(05)— 变量(变量定义、声明、初始化、extern关键字、变量之间转换)
  2. 我的puppet web 管理,彻底告别终端模式
  3. Linux jupyter安装位置,Linux下安装jupyter
  4. RSA客户端js加密服务器C#解密(含源码)
  5. 你真的知道 == 和 equals 的区别吗?
  6. 《C++Primer》复习——with C++11 [1]
  7. [转载]一个图形爱好者的书架/白话说学计算机图形学
  8. canvas beginPath()的初步理解
  9. python3.7shell显示行数_XShell远程CentOS7,Python3命令行下按方向键出现的乱码问题...
  10. CPaintDC 、CWindowDC、 CClientDC、cMemDC、 CDC
  11. 机器学习知识总结 —— 8. 什么是有监督学习、无监督学习、半监督学习
  12. 杰理之ANC降噪【篇】
  13. outlook2013升级_Microsoft Outlook 2013入门指南
  14. 1.4.3 ASBR-Summary-LSA
  15. chrome导入\导出登录密码
  16. 每日五题 -202110
  17. vue ie浏览器兼容
  18. 视频教程-19全新mysql教程零基础入门实战精讲mysql视频DBA数据库视频教程SQL教程-MySQL
  19. 挑逗Java程序员的那些Scala绝技
  20. 利用Python进行数据分析的学习笔记——chap6

热门文章

  1. html转为图片(三):Cssbox
  2. 3000元以内可以买到最好的电脑配置清单
  3. 一直剪一直爽html5游戏,游戏一时爽,一直游戏一直爽!可以玩1000小时的游戏是什么奇葩...
  4. 华为freebuds4e和5i哪个好 华为freebuds5i和4e区别
  5. 大数据“润物无声”大产业
  6. echart树图设置层级距离_echarts2 tree树图自定义显示缩放大小、位置
  7. 襄阳三中2021高考成绩查询,襄阳三中发布2020年高考成绩
  8. 体验H5+plus开发移动端
  9. php7.4 安装xdebug3.1.3扩展
  10. 数千万,打水漂了。。