全能小太阳 发表于 2022-7-29 13:38

最新可用蓝奏云质量解析源码-PHP

实现方法:
<?php
/**
* @Package LanzouApi
* @AuThor YunCheng
*/
header('Access-Control-Allow-Origin:*');
header('Content-Type:application/json; charset=utf-8');
//默认UA
$UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36';

$url = isset($_GET['url']) ? $_GET['url'] : "";
$pwd = isset($_GET['pwd']) ? $_GET['pwd'] : "";
$type = isset($_GET['type']) ? $_GET['type'] : "";
if (empty($url)) {
    die(
    json_encode(
      array(
            'code' => 400,
            'msg' => '请输入URL'
      )
      , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
    );
}
//一个简单的链接处理
$url='https://www.lanzouf.com/'.explode('.com/',$url)['1'];
$softInfo = MloocCurlGet($url);

if (strstr($softInfo, "文件取消分享了") != false) {
    die(
    json_encode(
      array(
            'code' => 400,
            'msg' => '文件取消分享了'
      )
      , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
    );
}
preg_match('~style="font-size: 30px;text-align: center;padding: 56px 0px 20px 0px;">(.*?)<\/div>~', $softInfo, $softName);
if(!isset($softName)){
        preg_match('~<div class="n_box_fn".*?>(.*?)</div>~', $softInfo, $softName);
}
preg_match('~<div class="n_filesize".*?>大小:(.*?)</div>~', $softInfo, $softFilesize);
if(!isset($softName)){
        preg_match('~var filename = \'(.*?)\';~', $softInfo, $softName);
}

if (strstr($softInfo, "手机Safari可在线安装") != false) {
        if(strstr($softInfo, "n_file_infos") != false){
              $ipaInfo = MloocCurlGet($url, 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1');
            preg_match('~href="(.*?)" target="_blank" class="appa"~', $ipaInfo, $ipaDownUrl);
    }else{
            preg_match('~com/(\w+)~', $url, $lanzouId);
      if (!isset($lanzouId)) {
            die(
            json_encode(
                array(
                  'code' => 400,
                  'msg' => '解析失败,获取不到文件ID'
                )
                , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
            );
      }
      $lanzouId = $lanzouId;
      $ipaInfo = MloocCurlGet("https://www.lanzouf.com/tp/" . $lanzouId, 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1');
      preg_match('~href="(.*?)" id="plist"~', $ipaInfo, $ipaDownUrl);
    }
   
    $ipaDownUrl = isset($ipaDownUrl) ? $ipaDownUrl : "";
    if ($type != "down") {
      die(
      json_encode(
            array(
                'code' => 200,
                'msg' => '解析成功',
                'name' => isset($softName) ? $softName : "",
                'downUrl' => $ipaDownUrl
            )
            , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
      );
    } else {
      header("Location:$ipaDownUrl");
      die;
    }
}
if(strstr($softInfo, "function down_p(){") != false){
        if(empty($pwd)){
                die(
                json_encode(
                        array(
                                'code' => 400,
                                'msg' => '请输入分享密码'
                        )
                        , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
                );
        }
        preg_match("~action=(.*?)&sign=(.*?)&p='\+(.*?),~", $softInfo, $segment);
        $post_data = array(
                "action" => $segment,
                "sign" => $segment,
                "p" => $pwd
        );
        $softInfo = MloocCurlPost($post_data, "https://www.lanzouf.com/ajaxm.php", $url);
        $softName = json_decode($softInfo,JSON_UNESCAPED_UNICODE)['inf'];
}else{
        preg_match("~\n<iframe.*?name=\"[\s\S]*?\"\ssrc=\"\/(.*?)\"~", $softInfo, $link);
        $ifurl = "https://www.lanzouf.com/" . $link;
        $softInfo = MloocCurlGet($ifurl);
        preg_match_all("~sign = '(.*?)'~", $softInfo, $segment);
        $post_data = array(
                "action" => 'downprocess',
                "signs"=>"?ctdf",
                "sign" => $segment,
        );
        $softInfo = MloocCurlPost($post_data, "https://www.lanzouf.com/ajaxm.php", $ifurl);
}

$softInfo = json_decode($softInfo, true);
if ($softInfo['zt'] != 1) {
    die(
    json_encode(
      array(
            'code' => 400,
            'msg' => $softInfo['inf']
      )
      , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
    );
}

$downUrl1 = $softInfo['dom'] . '/file/' . $softInfo['url'];
//解析最终直链地址
$downUrl2 = MloocCurlHead($downUrl1,"http://developer.store.pujirc.com",$UserAgent,"down_ip=1; expires=Sat, 16-Nov-2019 11:42:54 GMT; path=/; domain=.baidupan.com");

if($downUrl2 == ""){
        $downUrl = $downUrl1;
}else{
        $downUrl = $downUrl2;
}
if ($type != "down") {
    die(
    json_encode(
      array(
            'code' => 200,
            'msg' => '解析成功',
            'name' => isset($softName) ? $softName : "",
            'filesize' => isset($softFilesize) ? $softFilesize : "",
            'downUrl' => $downUrl
      )
      , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
    );
} else {
    header("Location:$downUrl");
    die;
}
function MloocCurlGetDownUrl($url)
{
    $header = get_headers($url,1);
    if(isset($header['Location'])){
                return $header['Location'];
        }
        return "";
}

function MloocCurlGet($url = '', $UserAgent = '')
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    if ($UserAgent != "") {
      curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
    }
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.Rand_IP(), 'CLIENT-IP:'.Rand_IP()));
    #关闭SSL
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    #返回数据不直接显示
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

function MloocCurlPost($post_data = '', $url = '', $ifurl = '', $UserAgent = '')
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
    if ($ifurl != '') {
      curl_setopt($curl, CURLOPT_REFERER, $ifurl);
    }
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.Rand_IP(), 'CLIENT-IP:'.Rand_IP()));
    #关闭SSL
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    #返回数据不直接显示
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

//直链解析函数
function MloocCurlHead($url,$guise,$UserAgent,$cookie){
$headers = array(
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'Accept-Encoding: gzip, deflate',
        'Accept-Language: zh-CN,zh;q=0.9',
        'Cache-Control: no-cache',
        'Connection: keep-alive',
        'Pragma: no-cache',
        'Upgrade-Insecure-Requests: 1',
        'User-Agent: '.$UserAgent
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_REFERER, $guise);
curl_setopt($curl, CURLOPT_COOKIE , $cookie);
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_NOBODY, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLINFO_HEADER_OUT, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($curl);
$url=curl_getinfo($curl);
curl_close($curl);
return $url["redirect_url"];
}

function Rand_IP(){

    $ip2id = round(rand(600000, 2550000) / 10000);
    $ip3id = round(rand(600000, 2550000) / 10000);
    $ip4id = round(rand(600000, 2550000) / 10000);
    $arr_1 = array("218","218","66","66","218","218","60","60","202","204","66","66","66","59","61","60","222","221","66","59","60","60","66","218","218","62","63","64","66","66","122","211");
    $randarr= mt_rand(0,count($arr_1)-1);
    $ip1id = $arr_1[$randarr];
    return $ip1id.".".$ip2id.".".$ip3id.".".$ip4id;
}
?>


文件下载:

ele2020 发表于 2022-8-4 10:25

dj215 发表于 2022-8-1 21:31

全能小太阳 发表于 2022-8-1 09:44
对的,也支持密码的

我那天测试好像是返回404啊,没获得渠道真实地址啊~

qqdns 发表于 2022-7-29 14:59

感谢分享,非常实用

夏520 发表于 2022-7-29 16:29

感谢分享,非常实用

夏520 发表于 2022-7-29 16:30

是不是要要密码也行地???:lol

hanxiao666 发表于 2022-7-29 16:44

这东西干嘛用的? 用命令行下载?

全能小太阳 发表于 2022-7-29 16:47

夏520 发表于 2022-7-29 16:30
是不是要要密码也行地???

支持密码

emptynullnill 发表于 2022-7-29 17:59

楼主有试过不断请求会被蓝奏封IP或者封号吗?

忧郁之子 发表于 2022-7-29 18:05

但愿能一直有效,很多方法后来都不能用了

YFYL 发表于 2022-7-29 18:07

请问这个是干什么用的?

mainblog 发表于 2022-7-29 18:08

支持一下楼主,感谢分享。
页: [1] 2 3
查看完整版本: 最新可用蓝奏云质量解析源码-PHP