记录一次使用python来实现雷神加速器自动恢复时间和暂停时间的脚本 您所在的位置:网站首页 雷神加速器没暂停直接关机了怎么办扣时间吗 记录一次使用python来实现雷神加速器自动恢复时间和暂停时间的脚本

记录一次使用python来实现雷神加速器自动恢复时间和暂停时间的脚本

2024-06-24 21:53| 来源: 网络整理| 查看: 265

本博客仅供交流学习使用

最近因为经常打黎明杀机,需要用加速器的次数也变多了,但是总是需要去手动的恢复时间和暂停时间,非常的麻烦,在网上搜了一下发现之前有人写过类似的项目,但是用来下载的链接炸掉了,于是乎就打算自己也做一个玩玩。

首先第一步,先去分析一下他们家网页端,可以看到网页这里有恢复时间和暂停时间的选项的,我们可以从这里作为入手点,在客户端上不好操作。 在这里插入图片描述 打开我们万能的Fiddler,俗话说的好啊,Fiddler学的好,牢饭吃的饱 ,分析下点击了恢复时间之后发生了些什么。 在这里插入图片描述 可以看到它是POST请求来发包到recover那里,发送的是json格式的数据,数据中就包含了两项,一项是最重要的用户的token,另一项则是语言。 然后我们去看一看从服务端返回了什么。 在这里插入图片描述返回了json数据,其中包括一项code,在此可以推断出0就是正常状态,一项是msg,编码转译过来的意思就是成功,那一项data倒是不太清楚,里面也没有数据可以分析,并且我在开发过程中也没有遇到过code不为0的情况,一般来说都是为0的。 暂停时间也是同样的原理,只不过url换了一下而已。 然后就是这个token如何拿到了,一般就是在登录时,如果登录成功了,它就会给你返回一个token来使用。 这里的登录也是和之前的发包都大同小异,直接上json数据来看。 在这里插入图片描述 username和password两项就是用户名和密码,其他一般都是固定的,但是这里密码是加密的,后来通过查询得知,密码的加密方式就是md5方式来加密,并且转为了32位的小写,在模拟发包的时候需要注意一下。 它返回来的json数据中,日常包含一个code没有什么问题,还有一个account_token,这个就是我们想要的了,expiry_time应该是token的到期时间,也就是说,在我们编写脚本的过程中,需要注意做一个token失效检测的逻辑判断。至于nn_token就不太清楚是做什么的,不过我们也用不到,就暂时先忽略掉。

okk,准备工作差不多已经完成了,接下来就是重头戏–敲代码的部分

先声明一些要用到的变量和用到的库

import requests # 模拟发包 import json # 封装和解析json数据 import sys # 用来终结自己的进程 import hashlib # md5加密相关 url_recover = 'https://webapi.nn.com/api/user/recover' url_pause = 'https://webapi.nn.com/api/user/pause' url_login = 'https://webapi.nn.com/api/auth/login' headers = { 'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)', 'Accept': 'application/json, text/plain, */*', 'Content-Type': 'application/json', 'Origin': 'https://vip-jiasu.nn.com', 'Referer': 'https://vip-jiasu.nn.com/' }

这里需要注意的是,headers中的Content-Type需要额外加上,因为要传的是json数据,所以value是application/json

然后来做模拟登录,来获取到关键的token

login_data = { "username": user, "password": md5(pwd), "user_type": 0, "src_channel": "guanwang", "country_code": 86, "lang": "zh_CN", "region_code": 1, "account_token": "null" } login = requests.post(url=url_login, headers=headers,data=json.dumps(login_data)) code = json.loads(login.text).get('code')

这里的变量code是获取它返回的状态值,可以用来检查是否登录成功,顺便一提,状态码500001是用户名或者密码错误。 还有就是md5函数,python里是没有自带这个函数来直接使用的,我们可以创建一个这样的函数:

def md5(str): input = hashlib.md5() input.update(str.encode("utf-8")) return (input.hexdigest()).lower()

拿到token之后就再组一个字典,我这里是使用创建函数,然后将字典传入函数中即可。

# 恢复时间 def recover(data): recover = requests.post(url=url_recover, headers=headers, data=json.dumps(data)) return json.loads(recover.text).get('code') # 暂停时间 def pause(data): pause = requests.post(url=url_pause, headers=headers, data=json.dumps(data)) return json.loads(pause.text).get('code')

返回的都是状态值,来判断是否成功了。

这些核心部分完成后,再将剩下的其他零零碎碎的东西补全就好,对于日常使用的问题,我的思路是写一个批处理命令,将脚本和加速器程序同时启动,或者先运行脚本,然后脚本来恢复时间后去拉起程序启动,接着脚本就会循环检测程序的进程状态,根据情况来设置循环间隔长短,如果检测到加速器程序没有在运行时,就执行暂停时间命令,然后kill自己,完成使命。 当我大概都写完了之后,发现在关闭加速器时出现了这个弹窗。。。。 在这里插入图片描述 gnn,林北写这么长时间,才发现有这个弹窗,这正常人哪怕忘记暂停时间了也可以通过这个弹窗记起来,然后去关掉吧。。。。 关掉,关掉,一定要关掉



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有