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