蓝奏云网盘文件直连下载解析代码,无需等待

API接口 1,233 阅读 0

实在是不知道弄个什么API了,所以看了下别人的API站点,看到有一个蓝奏云直链解析的代码,所以我这边直接复制下来到服务器上准备测试,试了下, 代码基本上废的(大部分代码都是可以用的,应该是作者之前写的,所以蓝奏云更新了,代码就失效了。)

我花了一个小时,把代码修复了一下,现在在我服务器上能够正常的解析蓝奏云链接了,这里也就放出来分享一下,api还算是比较有用的,具体可以直接放在下载站做一个属于自己的“真正”意义上的网盘,这样做的好处是提高用户的体验,因为不用进入蓝奏云的链接,那样也就没有广告了,直接提升用户下载的舒适度;第二个就是点击就下载,不用进入两三个页面,依次点击才能下载。

当然,缺点也是有的,解析一个文件,系统会对蓝奏云网盘请求三次,三次请求下来才把链接给用户,所以说,多多少少还是吃服务器性能和带宽的。

同时也用更大的缺点,那就是请求次数太多,蓝奏云可能会拉黑IP(因为服务器ip相对来说是唯一的、固定的,拉黑了服务器就无法请求了),只有换IP才能再次使用,所以千万不要滥用。

下面是完整的代码:

<?php
    /**
     * @package Lanzou
     * @author Mlooc
     * @version 1.0.0
     * @link http://api.liusy.tk
     * 
     * Time:2020年4月12日15:27
     * Author:书蓝画青
     * Website:https://www.mxooo.cn/
     * More:本代码是基于原作者Mlooc的代码上修改的,原来作者写的代码失效了,
     * 本次我进行修复,执行流程没有改动,但是匹配的正则和伪造头全部替换了,
     * 我本人是不懂正则的,所以浪费了点时间。
     */
function MloocCurl($url,$method,$ifurl,$post_data){
    $UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36';#设置ua
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    if ($method == "post") {
        curl_setopt($curl, CURLOPT_REFERER, $ifurl); 
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    }
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
    // echo $response;
}
if (!empty($_GET['url'])) {
    $url = $_GET['url'];
    #第一步
    $ruleMatchDetailInList = '/<iframe[^>]*\s+src="([^"]*)"[^>]*>/is';
    preg_match($ruleMatchDetailInList, MloocCurl($url,null,null,null),$link);
    $ifurl = "https://www.lanzous.com".$link[1];
    // echo $ifurl;
    // print_r($link);
    #第二步
    $cccccc = "~=\s'(.*?)';[\S\s]*?=\s'(.*?)'[\S\s]*?=\s'(.*?)'[\S\s]*?=\s'(.*?)'~";
    preg_match($cccccc, MloocCurl($ifurl,null,null,null),$segment);
    $segment[4] = trim($segment[4]);
    #第三步
    #post提交的数据
    $post_data = array(
        "action" => 'downprocess',
        "sign" => $segment[4],
        "ves" => '1',
        );
    $obj = json_decode(MloocCurl("https://www.lanzous.com/ajaxm.php","post",$ifurl,$post_data));#json解析
    // print_r($obj);
    if ($obj->dom == "") {#判断链接是否正确
        exit('获取直连失败!');
    }else{
        $downUrl = $obj->dom."/file/".$obj->url;
        if (!empty($_GET['type'])) {
            $type = $_GET['type'];
            if ($type == "down") {
                header('Location:'.$downUrl);#直接下载
            }else{
                echo $obj->dom."/file/".$obj->url;#输出直链
            }
        }else{
            echo $obj->dom."/file/".$obj->url;#输出直链
        }
    }
}else{
    $result_url = str_replace("index.php","","https://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?url=https://www.lanzous.com/i19zisb");
    echo "<strong><font color='red' size='4'>注意:仅仅支持单个文件解析直链下载!多个文件不持,比如说传进来的是一个文件夹的url,系统会报错!</font><strong><br>";
    echo "示列:";
    echo "<br/>";
    echo "直接下载:"."<a href='".$result_url."&type=down' target='_blank'>".$result_url."&type=down</a>";
    echo "<br/>";
    echo "输出直链:"."<a href='".$result_url."' target='_blank'>".$result_url."</a>";
    echo "<br><br><br>蓝画青博客:"."<a href='https://www.mxooo.cn' target='_blank'>https://www.mxooo.cn</a>";
}
?>

如何使用:

开发者:复制上面的代码,新建一个php文件,把代码复制进去就行了。

用户:访问“https://api.mxooo.cn/lanzou/”,按照提示说明操作。

二次作者忠告:

PS:能不使用就尽量不使用,因为蓝奏云是免费不限速的网盘,在这个时代是很良心的,所以,尽量不要使用这个,不使用这个蓝奏云才能保证收入的不减少(蓝奏云目前盈利方式为VIP会员和广告,但是免费用户依旧下载不限速不限制网盘大小),那样才能给更多的用户提供更好的服务。

截图演示:

蓝奏云网盘文件直连下载解析代码,无需等待

此代码我仅仅是修复失效部分,版权为原作者所有。使用请勿删除版权。

Tags:

版权声明:若无特殊注明,本文皆为《燕闻墨香博客》原创,转载务必保留文章来源。

本文链接:蓝奏云网盘文件直连下载解析代码,无需等待 & https://www.mxooo.cn/432/

推荐阅读
发表评论 取消回复
表情 图片 链接 代码

分享