实在是不知道弄个什么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://cfhcx.com/
* 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.lanzoux.com".$link[1];
// echo $ifurl;
// print_r($link);
#第二步
$cccccc = "~=s'(.*?)';[Ss]*?=s'(.*?)'[Ss]*?=s'(.*?)'[Ss]*?=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.lanzoux.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.lanzoux.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://cfhcx.com' target='_blank'>https://cfhcx.com</a>";
}
?>
如何使用:
[alert class="warning"]
开发者:复制上面的代码,新建一个php文件,把代码复制进去就行了。
用户:访问“https://api.mxooo.cn/lanzou/”,按照提示说明操作。
[/alert]
二次作者忠告:
PS:能不使用就尽量不使用,因为蓝奏云是免费不限速的网盘,在这个时代是很良心的,所以,尽量不要使用这个,不使用这个蓝奏云才能保证收入的不减少(蓝奏云目前盈利方式为VIP会员和广告,但是免费用户依旧下载不限速不限制网盘大小),那样才能给更多的用户提供更好的服务。
截图演示:
此代码我仅仅是修复失效部分,版权为原作者所有。使用请勿删除版权。
正文结束