开源360网盘真实地址解析_hcf6666
功能说明:本程序是基于易语言开发的实用辅助软件,其核心功能定位为一个专门用于处理 360 网盘(360 云盘)分享链接的解析器。程序的主要目标是帮助用户从复杂的网页分享地址中提取出有效的直接下载地址,并支持对文件夹内的资源进行深层遍历和批量解析。
通过对代码结构的分析,可以总结出以下几个关键的功能模块和工作原理:
1. 程序启动与界面自适应管理
程序的启动流程始于“窗口程序集_启动窗口”,其中包含一个名为"__启动窗口_创建完毕”的子程序。该子程序在窗口生成后自动执行,主要作用是进行界面的自适应布局调整。它通过计算窗口的实际可用宽度和高度,动态调整界面上的控件(如按钮1、超级列表框1)的位置坐标和尺寸。这一设计确保了程序在不同分辨率或缩放比例的屏幕运行时,用户界面依然保持整齐美观,不会出现控件遮挡或错位的情况。
2. 核心功能:360 网盘地址解析与下载链接获取
程序中最关键的部分是公开子程序“取 360 网盘地址”。该函数封装了完整的网盘链接解析逻辑,其详细工作流程如下:
- 输入参数处理:接受用户输入的分享地址(支持直接复制的结果)、访问密码(可选)、以及用于接收解析结果的输出变量(文件名、大小、Hash、时间、文件夹名)。这为后续的批量处理提供了数据基础。
- 链接标准化与密码提取:程序首先会对输入的 URL 进行清洗,强制将 HTTPS 协议转换为 HTTP 协议以保证兼容性。如果用户未提供访问密码,程序会根据预设规则(通常是提取地址末尾的字符或特定位置的文本)尝试自动从分享链接中提取密码,大大简化了用户的操作步骤。
- 服务端交互与验证:程序利用 HTTP 读文本功能模拟浏览器行为,访问 360 网盘相关的 API 接口。第一步是获取重定向信息,提取出短链接(shorturl)和域名。第二步是通过调用"/share/verifyPassword"接口,携带短链接和密码向服务器发起验证请求。系统会检查返回结果中的错误码,若出现"26016"等特定错误码,则明确反馈“外链分享密码错误”,否则继续后续流程。
- 文件与目录判断:验证通过后,程序会检查返回内容中是否包含"rootFileList"关键字,以此判断分享的内容是直接的文件还是文件夹结构。
- 如果是直接文件:程序会解析出文件的唯一标识(nid),并通过"/share/downloadfile"接口提交请求,服务器返回包含"downloadurl"的 JSON 数据包,程序从中提取并清理换行符后,返回最终的直接下载地址。同时还会同步获取文件的 md5 校验值、大小、修改时间等元数据。
- 如果是文件夹:程序进入了深层枚举模式。它会提取父目录的 nid,并进入循环逻辑,准备调用"/share/listsharedir"接口来获取下一级文件列表。代码中展示了通过数组动态存储待处理的 nid,并使用“计次循环”来处理多级目录嵌套,从而实现了对整个文件夹树的遍历。
3. 数据处理与技术实现细节
在底层实现上,程序大量使用了易语言内置的字符串处理函数(如“取中间文本”、“子文本替换”、“寻找文本”等)配合正则表达式风格的逻辑,从非标准的服务器响应文本中精确截取所需字段。此外,程序使用了 UTF8 到 ANSI 的编码转换,以确保读取到的中文文件名不乱码。对于多文件或多层级的情况,程序设计采用了换行符分割的文本格式来传递和接收多个下载地址或文件信息,便于后续与其他程序对接或直接保存为列表。
综上所述,该程序是一个功能完善的 360 网盘资源提取工具。它不仅解决了普通用户无法获得直链的痛点,还特别优化了文件夹递归提取的功能,适合需要批量下载 360 网盘资源的进阶用户使用。通过简化的输入和自动化的后端交互,实现了从“分享页”到“真实下载地址”的无缝转换。
======窗口程序集_启动窗口
| |
| |------ __启动窗口_创建完毕
| |
| |------ 取360网盘地址
| |
| |------ __启动窗口_被激活
| |
| |------ _按钮1_被单击
| |
| |------ _打开下载_被选择
| |
| |------ 打开_
| |
| |------ _复制名称_被选择
| |
| |------ _复制大小_被选择
| |
| |------ _复制时间_被选择
| |
| |------ _复制地址_被选择
| |
| |------ _超级列表框1_右键单击表项
| |
| |
======调用的Dll
| |
| |---[dll]------ ShellExecuteA
======程序集_HTTP应用模块
| |
| |------ _启动子程序
| |
| |------ HTTP断点续传进度下载
| |
| |------ HTTP断点续传_等待
| |
| |------ HTTP断点续传_跳出下载线程
| |
| |------ 取网络文件大小
| |
| |------ 是否连接到互联网
| |
| |------ 高精度延迟
| |
| |------ 毫秒到微秒
| |
| |------ 秒到微秒
| |
| |------ 取Unix时间戳
| |
| |------ 取Unix时间戳时间
| |
| |------ 编码转换_对象
| |
| |------ ReadFile2
| |
| |------ ReadFile
| |
| |------ 取中间文本
| |
| |------ 取中间文本_全部
| |
| |------ HTTP读文件Ex_字节集
| |
| |------ HTTP读文件_对象
| |
| |------ COOKIE合并更新
| |
| |------ 取中间文本1
| |
| |------ HTTP读文本
| |
| |------ HTTP读文本_U
| |
| |------ HTTP读文件Ex
| |
| |------ URL编码_UTF8
| |
| |------ URL解码_UTF8
| |
| |------ URL解码
| |
| |------ URL编码
| |
| |------ Ansi转Utf8
| |
| |------ Utf8转Ansi
| |
| |------ Unicode转Utf8
| |
| |------ Ansi转Unicode
| |
| |------ Utf8转Unicode
| |
| |------ Unicode转Ansi
| |
| |------ 进制转换
| |
| |------ 取域名
| |
| |------ 取端口
| |
| |------ 取页面地址
| |
| |------ 设COOKIE
| |
| |------ 取COOKIE
| |
| |------ 取COOKIE_
| |
| |------ 清除COOKIE
| |
| |------ 删除COOKIE文件
| |
| |------ 转换为GMT格式
| |
| |------ 取随机字符串
| |
| |
======调用的Dll
| |
| |---[dll]------ InternetGetCookieA
| |
| |---[dll]------ WideCharToMultiByte
| |
| |---[dll]------ CreateThread
| |
| |---[dll]------ WaitForSingleObject
| |
| |---[dll]------ TerminateThread
| |
| |---[dll]------ InternetCloseHandle
| |
| |---[dll]------ InternetOpenA1
| |
| |---[dll]------ InternetOpenA
| |
| |---[dll]------ InternetConnectA
| |
| |---[dll]------ HttpOpenRequestA
| |
| |---[dll]------ HttpAddRequestHeaders
| |
| |---[dll]------ HttpSendRequestA
| |
| |---[dll]------ HttpSendRequestB
| |
| |---[dll]------ InternetReadFile
| |
| |---[dll]------ HttpQueryInfoA
| |
| |---[dll]------ InternetSetCookieA
| |
| |---[dll]------ CoInitialize
| |
| |---[dll]------ CoUninitialize
| |
| |---[dll]------ MultiByteToWideChar
| |
| |---[dll]------ WideCharToMultiByte1
| |
| |---[dll]------ CreateWaitableTimerA
| |
| |---[dll]------ MultiByteToWideChar1
| |
| |---[dll]------ _宽字符到双字节
| |
| |---[dll]------ _宽字符到双字节1
| |
| |---[dll]------ SetWaitableTimer
| |
| |---[dll]------ MsgWaitForMultipleObjects
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ InternetGetConnectedState
| |
| |---[dll]------ InternetOpenUrlA
| |
| |---[dll]------ HttpQueryInfoA1
| |
| |---[dll]------ InternetReadFile1
| |
| |---[dll]------ CallWindowProcA
| |
| |---[dll]------ InternetCheckConnectionA
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。