@@ -111,8 +108,7 @@ function verifyPwd($surl_1, $pwd) { // 验证提取码
$data = "pwd=$pwd";
$headerArray = array("User-Agent: netdisk", "Referer: https://pan.baidu.com/disk/home");
$json1 = post($url, $data, $headerArray);
- $json1 = json_decode($json1, true);
- // -12 提取码错误
+ $json1 = json_decode($json1, true); // -12 提取码错误
if ($json1["errno"] == 0) return $json1["randsk"];
else return 1;
}
@@ -121,7 +117,7 @@ function getSign($surl, $randsk) {
$url = 'https://pan.baidu.com/s/1' . $surl;
$headerArray = array(
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.514.1919.810 Safari/537.36",
- "Cookie: BDUSS=" . constant("BDUSS") . ";STOKEN=" . constant("STOKEN") . ";BDCLND=" . $randsk . ";"
+ "Cookie: BDUSS=" . BDUSS . ";STOKEN=" . STOKEN . ";BDCLND=" . $randsk . ";"
);
$json2 = get($url, $headerArray);
$re = '/yunData.setData\(({.+)\);/';
@@ -137,13 +133,16 @@ function getFileList($shareid, $uk, $randsk) {
$url = 'https://pan.baidu.com/share/list?app_id=250528&channel=chunlei&clienttype=0&desc=0&num=100&order=name&page=1&root=1&shareid=' . $shareid . '&showempty=0&uk=' . $uk . '&web=1';
$headerArray = array(
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.514.1919.810 Safari/537.36",
- "Cookie: BDUSS=" . constant("BDUSS") . ";STOKEN=" . constant("STOKEN") . ";BDCLND=" . $randsk . ";",
+ "Cookie: BDUSS=" . BDUSS . ";STOKEN=" . STOKEN . ";BDCLND=" . $randsk . ";",
"Referer: https://pan.baidu.com/disk/home"
);
$json3 = get($url, $headerArray);
$json3 = json_decode($json3, true);
return $json3;
}
+function fileInfo($filename, $size, $md5, $server_ctime) { // 输出 HTML 字符串
+ return '
文件名:' . $filename . '
文件大小:' . formatSize($size) . '
文件MD5:' . $md5 . '
上传时间:' . date("Y年m月d日 H:i:s", $server_ctime) . '
';
+}
// 获取下载链接
function getDlink($fs_id, $timestamp, $sign, $randsk, $share_id, $uk) {
@@ -156,12 +155,11 @@ function getDlink($fs_id, $timestamp, $sign, $randsk, $share_id, $uk) {
$url = 'https://pan.baidu.com/api/sharedownload?app_id=250528&channel=chunlei&clienttype=12&sign=' . $sign . '×tamp=' . $timestamp . '&web=1';
$headerArray = array(
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.514.1919.810 Safari/537.36",
- "Cookie: BDUSS=" . constant("BDUSS") . ";STOKEN=" . constant("STOKEN") . ";BDCLND=" . $randsk . ";",
+ "Cookie: BDUSS=" . BDUSS . ";STOKEN=" . STOKEN . ";BDCLND=" . $randsk . ";",
"Referer: https://pan.baidu.com/disk/home"
);
$res3 = post($url, $postdata, $headerArray);
$res3 = json_decode($res3, true);
- //var_dump($postdata, $res3);
//没有 referer 就 112 ,然后没有 sekey 参数就 118 -20???
// 参数 类型 描述
// list json array 文件信息列表
@@ -178,6 +176,4 @@ function getDlink($fs_id, $timestamp, $sign, $randsk, $share_id, $uk) {
// list[0]["width"] int 图片宽度
// list[0]["date_taken"] int 图片拍摄时间
return $res3;
-}
-
-if (!defined('init')){ http_response_code(403); header('Content-Type: text/plain; charset=utf-8'); die('想啥呢?访问这个文件?'); } // 直接访问处理程序
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/index.php b/index.php
index 245921bd..68d36ddc 100644
--- a/index.php
+++ b/index.php
@@ -1,40 +1,38 @@
-* @link https://imwcr.cn/
-* @link https://space.bilibili.com/88197958
-*
-* @author LC
-* @link https://lcwebsite.cn/
-* @link https://space.bilibili.com/52618445
-*/
+ * Pandownload PHP 复刻版主文件
+ *
+ * 功能描述:使用百度 SVIP 账号获取真实下载地址,与 Pandownload 原版无关
+ * 使用的时候请保留一下作者信息呀(就是菜单栏的 Made by Yuan_Tuo),谢~
+ * 有的注释不是很完整,见谅~
+ *
+ * 请勿随意修改此文件!如需更改相关配置请到 config.php !
+ *
+ * 此项目 GitHub 地址:https://github.com/yuantuo666/baiduwp-php
+ *
+ * @version 1.2.1
+ *
+ * @author Yuan_Tuo
+ * @link https://imwcr.cn/
+ * @link https://space.bilibili.com/88197958
+ *
+ * @author LC
+ * @link https://lcwebsite.cn/
+ * @link https://space.bilibili.com/52618445
+ */
// 导入配置和函数
define('init', true);
if (file_exists('config.php')) {
require('config.php');
} else {
- http_response_code(503);
- header('Content-Type: text/plain; charset=utf-8');
+ http_response_code(503); header('Content-Type: text/plain; charset=utf-8');
die('缺少配置文件!无法正常运行程序!
请重新 Clone 项目并配置!');
}
if (file_exists('functions.php')) {
require('functions.php');
} else {
- http_response_code(503);
- header('Content-Type: text/plain; charset=utf-8');
+ http_response_code(503); header('Content-Type: text/plain; charset=utf-8');
die('缺少函数定义文件!无法正常运行程序!
请重新 Clone 项目并配置!');
}
@@ -66,32 +64,32 @@
-
+
-
提示
-
因百度限制,需修改浏览器 User-Agent 后下载。
+
提示
因百度限制,需修改浏览器 User Agent 后下载。
-
+
- 选项 -> 下载 -> 手动添加任务时使用的用户代理(UA)-> 填入 LogStatistic
- - 右键复制下载链接(直接点击 或 右键调用IDM 将传入浏览器的UA,将会导致下载失败),在 IDM 新建任务,粘贴链接即可下载。
+ - 右键复制下载链接(直接点击 或 右键调用 IDM 将传入浏览器的 UA,将会导致下载失败),在 IDM 新建任务,粘贴链接即可下载。
-
+
- 安装浏览器扩展程序 User-Agent Switcher for Chrome
- 右键点击扩展图标 -> 选项
@@ -106,26 +104,21 @@
Chrome 应用商店打不开或者其他 Chromium 内核的浏览器,请点此下载
QQ浏览器插件下载
-
-
- - 设置 –> 浏览设置 -> 浏览器标识(UA)
- - 添加自定义UA:LogStatistic
-
- Alook 浏览器(IOS)
-
- - 设置 -> 通用设置 -> 浏览器标识 -> 移动版浏览器标识 -> 自定义 ->
填入 LogStatistic
-
+
+
- 设置 –> 浏览设置 -> 浏览器标识(UA)
- 添加自定义 UA:LogStatistic
+
+
- 设置 -> 通用设置 -> 浏览器标识 -> 移动版浏览器标识 -> 自定义 ->
填入 LogStatistic
-
-
-
链接不存在
-
此链接分享内容可能被取消或因涉及侵权、色情、反动、低俗等信息,无法访问!
-
';
- } else if ($filejson["errno"] != 0) {
- // 鬼知道发生了啥,比如说 -7
- echo '
-
-
链接存在问题
-
此链接存在问题,无法访问!
-
';
- } else {
- // 终于正常了
- //var_dump($filejson);
+ if ($filejson["errno"] == -21) echo '
+
链接不存在
此链接分享内容可能被取消或因涉及侵权、色情、反动、低俗等信息,无法访问!
'; // 链接失效
+ else if ($filejson["errno"] != 0) echo '
'; // 鬼知道发生了啥,比如说 -7
+ else { // 终于正常了
$filecontent = '
文件列表(' . count($filejson["list"]) . '个文件(夹))
";
}
- } else {
- echo '
';
- }
- } elseif (isset($_GET["download"])) {
+ } else echo '
';
+ } elseif (isset($_GET["download"])) { // 解析下载地址页面
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST["fs_id"]) && isset($_POST["time"]) && isset($_POST["sign"]) && isset($_POST["randsk"]) && isset($_POST["share_id"]) && isset($_POST["uk"])) {
$fs_id = $_POST["fs_id"];
@@ -191,74 +165,29 @@
$md5 = $json4["list"][0]["md5"];
$filename = $json4["list"][0]["server_filename"];
$size = $json4["list"][0]["size"];
- $server_ctime = (int)$json4["list"][0]["server_ctime"] + 28800; //服务器创建时间 +8:00
- $headerArray = array(
- 'User-Agent: LogStatistic',
- 'Cookie: BDUSS=' . constant("BDUSS") . ';'
- );
+ $server_ctime = (int)$json4["list"][0]["server_ctime"] + 28800; // 服务器创建时间 +8:00
+ $headerArray = array( 'User-Agent: LogStatistic', 'Cookie: BDUSS=' . BDUSS . ';' );
$getRealLink = head($dlink, $headerArray); // 禁止重定向
$getRealLink = strstr($getRealLink, "Location");
$getRealLink = substr($getRealLink, 10);
$realLink = getSubstr($getRealLink, "http://", "\r\n"); // 删除 http://
- // 3. 使用dlink下载文件
- // 4. dlink有效期为8小时
- // 5. 必需要设置User-Agent字段
- // 6. dlink存在302跳转
- if ($realLink == "") {
- echo '
-
-
-
获取下载链接失败
-
已获取到文件,但未能获取到下载链接!
-
请检查你是否在 config.php
中配置 SVIP 账号的 BDUSS 和 STOKEN!
-
未配置或配置了普通账号的均会导致失败!必须要 SVIP 账号!
-
文件名:' . $filename . '
-
文件大小:' . formatSize($size) . '
-
文件MD5:' . $md5 . '
-
上传时间:' . date("Y年m月d日 H:i:s", $server_ctime) . '
-
';
- } else {
- echo '
-
-
-
获取下载链接成功
-
文件名:' . $filename . '
-
文件大小:' . formatSize($size) . '
-
文件MD5:' . $md5 . '
-
上传时间:' . date("Y年m月d日 H:i:s", $server_ctime) . '
-
下载链接(不安全)
- 下载链接(安全)
-
下载链接使用方法(必读)
-
';
- }
- } else {
- echo '
';
- }
- } else {
- echo '
-
-
-
参数有误
-
POST 传参出现问题!请不要自行构建表单提交!
-
';
- }
- } else {
- echo '
-
-
-
方法错误
-
请不要直接访问此页面或使用 GET 方式访问!
-
';
- }
- } else { ?>
+ // 1. 使用 dlink 下载文件 2. dlink 有效期为8小时 3. 必需要设置 User-Agent 字段 4. dlink 存在 HTTP 302 跳转
+ if ($realLink == "") echo '
+
获取下载链接失败
已获取到文件,但未能获取到下载链接!
请检查你是否在 config.php
中配置 SVIP 账号的 BDUSS 和 STOKEN!
+
未配置或配置了普通账号的均会导致失败!必须要 SVIP 账号!
' . fileInfo($filename, $size, $md5, $server_ctime) . '
'; // 未配置 SVIP 账号
+ else echo '
'; // 成功!
+ } else echo '
'; // 未知错误
+ } else echo '
+
参数有误
POST 传参出现问题!请不要自行构建表单提交!
'; // 参数不齐
+ } else echo '
+
方法错误
请不要直接访问此页面或使用 GET 方式访问!
'; // 方法错误
+ } else { // 首页 ?>