跳过正文
  1. 文档/

Tongji-DORM-WIFI自动登录

·1941 字·4 分钟· loading · ·
工具 网络 同济
目录

前言
#

一如济网

同济大学无线网络提供三种接入服务(SSID):TJ-WIFITJ-GUEST-WIFIeduroam

  • TJ-WIFI 面向所有已开通统一身份认证或上网服务的在校师生及其他用户(tj 开头账户),采用 802.1x 接入方式,用户只需在首次登录时使用用户名及密码完成验证,再次连接时系统将会自动完成身份认证,无需重复输入;
  • TJ-GUEST-WIFI 主要面向校外访客,采用 web 认证方式,通过手机验证码认证登录;
  • eduroam 主要面向所有加入 eduroam 联盟(全球教育和学术领域无线漫游服务联盟)的其他高校师生或科研机构人员,采用 802.1x 接入方式,我校师生在其他提供该无线服务(SSID)的区域也可以使用该服务。

除此之外,在宿舍区域还有一种,TJ-DORM-WIFI,支持免费使用以及绑定宽带,但是如果长时间不使用,设备会被注销,基本一两天就要登录一次,较为麻烦,这也是写这个脚本的原因,主要针对 Windows 端。

思路
#

脚本较为简单,其实核心就是一个 GET 请求,在此基础上进行了一些逻辑判断。

分析验证方式
#

  1. 打开 TJ-DORM-WIFI 的登录页面 页面较为简单,只需要输入账号密码即可登录,此外如果绑定了宽带账号,可以选择【中国移动】、【中国联通】等,这里默认校园网账号登录。
    alt text
  2. 检查请求方式 在登录页按 F12 打开开发者工具,切换到 NetWork 选项卡,勾选保留日志,然后输入学号密码登录,查看请求方式,可以看到是 GET 请求方式。
    alt text
  3. 分析请求参数 点击第一个资源文件,查看Header表头参数,查看 URL 格式,发现请求的 URL 中带有学号密码明文,到这步也就知道了校园网自动认证的原理,甚至学号密码都没有加密,我们可以构造一个 GET 请求,传递此 URL 参数即可完成登录。
  4. 验证登录 复制请求 URL,注销校园网登录,然后在地址栏粘贴请求 URL,发现返回一些信息,同时校园网登录成功。也就是说最关键的就是构造这个 URL 请求。
    alt text

参数分析
#

  • LOGIN_IP

    • 描述:登录页面的基础 URL

    • 示例:"http://172.21.0.54/"

  • NOT_SIGNED_IN_TITLE

    • 描述:用户未登录时页面的标题

    • 示例:"上网登录页"

  • RESULT_RETURN

    • 描述:登录请求返回的成功标识

    • 示例:'"result":1'

  • TIMEOUT

    • 描述:请求的超时时间(秒)
  • RETRY_DELAY

    • 描述:请求失败后的重试等待时间(秒)
  • MAX_RETRIES

    • 描述:最大重试次数
  • USERNAME

    • 描述:用户的学号

    • 示例:"2253666"

  • PASSWORD

    • 描述:用户的密码
  • SIGN_PARAMETER

    • 描述:登录请求的完整 URL,包含用户名和密码
    • 示例:f"http://172.21.0.54/drcom/login?callback=dr1003&DDDDD={USERNAME}&upass={PASSWORD}&0MKKey=123456&..."
  • SIGNED_IN_TITLES

    • 描述:登录成功后可能出现的页面标题
    • 示例:["登录成功页", "注销页"]

配置
#

思路:编写脚本通过 GET 方法请求登录页面,传递学号密码参数,完成登录。为了实现自动登录,可以使用任务计划程序实现,也可以借助油猴插件,每次访问网页时自动检测并登录。

01 油猴脚本
#

使用大名鼎鼎的油猴扩展插件,编写简单的脚本程序,每次打开浏览器访问网页时检测是否可以访问互联网,如果不能访问,则使用 GET 方法请求登录页面,传递学号密码参数,完成登录,并刷新页面。

alt text

02 Python 脚本
#

使用 Python 编写脚本,通过 GET 方法请求登录页面,传递学号密码参数,完成登录,然后使用任务计划程序定时执行脚本,实现自动登录。
但是貌似这种方法有点麻烦,因为 Python 需要导入一些第三方包,不如第一种简单。

第一种属于浏览器脚本,不能操作系统设置,借助 Python 及其强大的第三方包,可以使脚本更灵活,比方 version2 相比之前添加了切换 WIFI 的功能,自动切换到 TJ-DORM-WIFI,并且添加了系统通知、错误重连等功能,但是十分简陋,还好勉强可用。

  • 需要导入的库有:
    pip install requests
    pip install win11toast
    pip install asyncio

  • 修改相关参数
    login_IP 改为学校校园网登录的 IP 地址,并添加 http
    not_sign_in_title 改为校园网未登录状态的页面标题
    result_return 改为登录成功页面中的标识(上面响应串中的"result":1)
    sign_parameter 改为电脑端的请求 URL
    signed_in_title 改为校园网已登录状态的页面标题

    alt text

  • 添加任务计划,每次开机自动执行脚本,实现自动登录

    • 搜索并打开任务计划程序,创建任务
      alt text
    • 修改权限和配置
      alt text
    • 添加触发器
      alt text
    • 添加条件
      alt text
    • 添加操作 因为 Python 脚本需要解释器,需要配环境,太麻烦,所以把 Python 脚本转成了 exe 可执行文件,这样更方便一些。
      alt text

03 批处理命令
#

也可以使用批处理命令,其实方法很多,核心部分就是通过 GET 方法请求登录 URL,而且不涉及任何加解密、验证码验证。

@echo off
REM 使用curl执行GET请求访问校园网登录URL

set USERNAME=你的学号
set PASSWORD=你的密码
set LOGIN_URL=http://172.21.0.54/drcom/login?callback=dr1003^&DDDDD=%USERNAME%^&upass=%PASSWORD%^&0MKKey=123456^&R1=0^&R2=^&R3=0^&R6=0^&para=00^&v6ip=^&terminal_type=1^&lang=zh-cn^&jsVersion=4.1^&v=2952^&lang=zh

curl -X GET "%LOGIN_URL%"

exit

代码部分
#

较为简单,可以自行修改

参考
#

相关文章

全平台命令行换源工具 chsrc
·178 字·1 分钟· loading
网络 工具
Follow,下一代的聚合信息浏览器
·1406 字·3 分钟· loading
软件推荐 阅读
【书评】变形记
·533 字·2 分钟· loading
书评
【书评】组织部来了个年轻人
·823 字·2 分钟· loading
书评
【书评】人生
·133 字·1 分钟· loading
书评
【书评】蛤蟆先生去看心理医生
·951 字·2 分钟· loading
书评