网站、APP、小程序、软件、硬件定制开发,联系QQ:99605319

用蓝奏云实现每次打开软件时,自动检测是否有更新


使用说明及实现原理:
1、蓝奏云网盘设置:网盘中要设置一个带密码的文件夹(假设为:HotUpdate)用于存放软件更新数据及更新说明(更新数据、更新说明文件不要设置密码);



2、设置更新说明:更新说明为txt文件,里面内容为新版本更新的主要内容,txt文件名需要设置为大写    V. + 最新版本号 + . dll  (例如:V.1.0.1.dll ),上传到 HotUpdate文件夹




3、设置更新数据:更新数据用压缩为zip格式,更新数据文件名需要设置为大写  U. +最新版本号+.zip(例如:U.1.0.1.zip ),上传到 HotUpdate文件夹 




4、初始化设置:(1)设置网址为 HotUpdate文件夹分享地址【必填】,例如:https://guoren.lanzouo.com/b00wvmvli
                           (2)密码为HotUpdate文件夹分享密码【必填】,例如:0000
                           (3)软件现行版本号为未更新的软件版本号【必填】,例如:1.0.0
                           (4)更新软件logo:用于设置更新程序左上角logo【选填】例如:/小白点/xbd.png
                           (5)软件启动程序路径:要启动的程序填写相对本软件路径【必填】,例如:/小白点/小白点A股助手.exe









6、原理:获取HotUpdate所有文件名称,取第一个以 V. 开头  .dll  结尾的文件并取中间的版本号(V.1.0.1.dll  取1.0.1),获取软件现行版本号(1.0.0),两个版本号不一样,检查是否存在U.1.0.1.zip ,如果存在则获取更新内容,让用户选择是否更新。
2023/8/29 11:20 更新
    V1.0.1
     aardio重构,去除python代码,体积变小   17.8M   ——>  789 k


软件链接:https://guoren.lanzouy.com/b00xj009c  密码:52pj


说下实现的思路,大家用的编程语言不一样,源码没有参考价值(我这边用的是aardio+python实现的)。


这个东西本质就是蓝奏云直链解析
本次用    https://guoren.lanzouy.com/b00wvmvli密码:0000     为例进行讲解,采用手机网页版访问(稳定),因此请求头设置手机浏览器请求头:Mozilla/5.0 (Linux; Android 7.1.2; PCT-AL10 Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5197 MMWEBSDK/20221109 MMWEBID/5104 MicroMessenger/8.0.31.2281(0x28001F39) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android

1、get请求:https://guoren.lanzouy.com/b00wvmvli  得到内容有这一段:

[JavaScript] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<script type="text/javascript">

        var imzcbj ='HotUpdate';

        document.title = imzcbj;

document.getElementById('sp_name').innerHTML=imzcbj;        var pwd;

        var pgs;

        var ib2o7x = '1693209538';

        var _h109q = 'a6fb8e273dd47b11b3fc800a2fcba9b3';

        pgs =1;

        function file(){

                var pwd = document.getElementById('pwd').value;

        $('#sub').val("提交中...");

                $.ajax({

                        type : 'post',

                        url : '/filemoreajax.php',

                        data : {

                        'lx':2,

                        'fid':7417478,

                        'uid':'1162887',

                        'pg':pgs,

                        'rep':'0',

                        't':ib2o7x,

                        'k':_h109q,

                        'up':1,

                                                'ls':1,

                        'pwd':pwd                        },

                        dataType : 'json',




然后截取一下字符串,整理一下得到下次post请求的data,把data带入第二次请求
post 请求  https://guoren.lanzouy.com/filemoreajax.php

[JavaScript] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

data = {lx: 2,

fid: 7417478,

uid: 1162887,

pg: 1,

rep: 0,

t: 1693209538,

k: a6fb8e273dd47b11b3fc800a2fcba9b3,

up: 1,

ls: 1,

pwd: 0000}


得到:

[JavaScript] 纯文本查看 复制代码

?

1

{"zt":1,"info":"sucess","text":[{"icon":"dll","t":0,"id":"ibVKf16ft28h","name_all":"V.1.0.1.dll","size":"81.0 B","time":"\u524d\u592922:01","duan":"i16ft28","p_ico":0},{"icon":"zip","t":0,"id":"ieQ8U16ft27g","name_all":"U.1.0.1.zip","size":"39.4 M","time":"\u524d\u592922:01","duan":"i16ft27","p_ico":0}]}


把文件的id进行拼接  得到下次请求url ,(例如,"id":"ibVKf16ft28h")拼接文件详情链接(手机版)---> https://guoren.lanzouo.com/   +   tp/    +    ibVKf16ft28h
第三次请求,get    请求   https://guoren.lanzouo.com/tp/ibVKf16ft28h
得到网页中有

[JavaScript] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

<script type="text/javascript">var cppat = 'as';

var tedomain ='c';

var vkjxld = 'https://developer-oss.lanzouk.com/file/';

var tedomaina = '';

var hyggid = '?UjRXaQ08VGUIAQU9BDFRPVZpBz8DKldkBy5XYVQmUWEGKAEyDj9UbFEhCjpRbFM+AzxQCldhBGIDOVptBWgBMFJlVzENZVQ2CGYFagR2UTZWfwc/A2RXZAcmVyFUeFFtBjQBZg5hVDNRKApsUTFTfQNoUGZXJwQxAzxaPQVgATZSMFdmDWZUMgg8BWMEZlE2VjkHZwNsVzEHMFdjVDpRYgZgAWYOMlQ1UWQKPVE0UzQDOFA3VzEEKANgWjAFNQEmUidXcw01VHIINwU3BG1RYVY9BzQDbldtBzhXZlQuUSQGbwE7DjZUZlE6Cm1RM1NrA2tQbFc9BDUDNVppBWsBJlI0V2wNJ1Q9CG8FZQRoUWJWPAc3A2hXZwcwV2ZULlElBnYBIQ5uVDFRMQpkUTRTYQNuUGVXOAQyAzJaegUsAWlSIlc9DWFUOAhuBX0EYVFgVjUHLANtV2EHMFd/VDtRYAYgATIOP1Q9UTc=';

var domianload = 'c';

//var subtis = 'sa';

(function(document) {

var submit = document.getElementById('submit');

submit.onfocus = submit.onmousedown = function() {

submit.href =  vkjxld + hyggid

}



取  vkjxld + hyggid  得到下次请求url    ,这里可以进行判断(vkjxld 、 hyggid 这两个变量名有可能会变),用 = 分割为列表listone ,遍历listone ,listone前几个字符串为“https 且同时存在   lanzou   那 listone 切割  ‘ 得到 https://developer-oss.lanzouk.com/file/  ,  listone[i-1]切割 var   得到变量名称(注意去除空格),hyggid 变量名及他的值同理亦可得。

第四次请求,这次比较特殊, vkjxld + hyggid得到的链接实际上是重定向的,要用head方法进行请求,解析取Location的值就是文件直链

剩下的事情就简单了,按照   6、原理就可以实现本软件功能。



经验分享资源(用蓝奏云搭建免费的软件更新API)网址:https://www.08i8.com/course/detail488.html;转载请注明!


评论(0条)

请登录后评论
ziyuan

ziyuan Rank: 16

0

0

0

( 此人很懒并没有留下什么~~ )

首页

栏目

搜索

会员