最新藍奏云直連解析API接口php代碼
API接口說明
支持檢測文件是否被取消
支持帶密碼的文件分享鏈接但不支持分享的文件夾
支持生成直鏈或直接下載
增加ios應用在線安裝
解析最終直鏈
自動識別舊版鏈接替換為新版并解析
接口使用方法
url:藍奏云外鏈鏈接
type:是否直接下載 值:down
pwd:外鏈密碼
直接下載:
無密碼:您的域名/lanzou/?url=https://www.lanzous.com/i6th9cd&type=down
有密碼:您的域名/lanzou/?url=https://www.lanzous.com/i42Xxebssfg&type=down&pwd=1234
輸出直鏈:
無密碼:您的域名/lanzou/?url=https://www.lanzous.com/i6th9cd
有密碼:您的域名/lanzou/?url=https://www.lanzous.com/i42Xxebssfg&pwd=1234
API接口代碼
<?php /** * @package Lanzou * @author Filmy,hanximeng * @version 1.2.6 * @Date 2022-03-03 */ 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.lanzoux.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[1])){ preg_match('~<div class="n_box_fn".*?>(.*?)</div>~', $softInfo, $softName); } preg_match('~<div class="n_filesize".*?>大小:(.*?)</div>~', $softInfo, $softFilesize); if(!isset($softName[1])){ 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[1])) { die( json_encode( array( 'code' => 400, 'msg' => '解析失敗,獲取不到文件ID' ) , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) ); } $lanzouId = $lanzouId[1]; $ipaInfo = MloocCurlGet("https://www.lanzoux.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[1]) ? $ipaDownUrl[1] : ""; if ($type != "down") { die( json_encode( array( 'code' => 200, 'msg' => '', 'name' => isset($softName[1]) ? $softName[1] : "", '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[1], "sign" => $segment[2], "p" => $pwd ); $softInfo = MloocCurlPost($post_data, "https://www.lanzoux.com/ajaxm.php", $url); $softName[1] = json_decode($softInfo,JSON_UNESCAPED_UNICODE)['inf']; }else{ preg_match("~\n<iframe.*?name=\"[\s\S]*?\"\ssrc=\"\/(.*?)\"~", $softInfo, $link); $ifurl = "https://www.lanzoux.com/" . $link[1]; $softInfo = MloocCurlGet($ifurl); preg_match_all("~pdownload = '(.*?)'~", $softInfo, $segment); if(empty($segment[1][0])){ preg_match_all("~ispostdowns = '(.*?)'~", $softInfo, $segment); } if(empty($segment[1][0])){ preg_match_all("~'sign':'(.*?)'~", $softInfo, $segment); } $post_data = array( "action" => 'downprocess', "signs"=>"?ctdf", "sign" => $segment[1][0], ); $softInfo = MloocCurlPost($post_data, "https://www.lanzoux.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[1]) ? $softName[1] : "", 'filesize' => isset($softFilesize[1]) ? $softFilesize[1] : "", '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; } ?>