作者:matrix 被围观: 14,841 次 发布时间:2013-10-19 分类:兼容并蓄 零零星星 | 34 条评论 »
用火狐的firebug插件看到云盘的下载过程是通过post提交获得json数据(期间会检查REFERER),之后再跳转到下载地址。
图片外链演示:
mp3外链失败,但是下载的话没问题(后来才知道是360防盗链的Referer缘故):
源码下载[已失效]:
城通 http://www.400gb.com/file/55758296 baidu http://pan.baidu.com/s/1kTGjyZX 代码[已失效]:
<?php /** * 2014-1-27更新 修改正则匹配 * Author:不懂就乱来 * Website:https://www.hhtjim.com **/ error_reporting(0); function curl_get($url,$post=0,$carry_header=true,$REFERER_=0,$useragent=0,$add_arry_header=0){ $ch=curl_init($url); //curl_setopt($ch, CURLOPT_HEADER, 1); if($carry_header){ curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent:Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16')); } if($add_arry_header){ curl_setopt($ch, CURLOPT_HTTPHEADER, $add_arry_header); } if ($post) { curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } if($REFERER_){ curl_setopt($ch, CURLOPT_REFERER,$REFERER_); } if($useragent){ curl_setopt($ch, CURLOPT_USERAGENT, $useragent); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $get_url = curl_exec($ch); curl_close($ch); return $get_url; } function curl_get_http($url,$REFERER_,$add_arry_header=0){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); if($REFERER_){curl_setopt($curl, CURLOPT_REFERER,$REFERER_);} if($add_arry_header){ curl_setopt($curl, CURLOPT_HTTPHEADER, $add_arry_header); } curl_setopt($curl, CURLOPT_TIMEOUT, 10); $src = curl_exec($curl); curl_close($curl); return $src ; } if(isset($_GET['360'])){//360云盘下载 $_url=$_GET['360']; $yunpanhtml=curl_get($_url); if(emptyempty($yunpanhtml)){ $_yunpanur__=curl_get_http($_url); preg_match("|http:\/\/\w+\.\w+\.yunpan\.cn\/lk\/\w+|",$_yunpanur__,$yunpanhtml_n); $yunpanhtml_new=curl_get($yunpanhtml_n[0]); }else{ $yunpanhtml_new=$yunpanhtml; } $yunpanzz="|SYS_CONF = {[^}]+surl: '(\w+)'[^}]+nid : '(\d+)'[^}]+}|"; preg_match($yunpanzz,$yunpanhtml_new,$yunpancs); $nid = $yunpancs[2] ? $yunpancs[2] : exit('ERROR code: Not found SYS_CONF {nid}'); $shorturl = $yunpancs[1] ? $yunpancs[1] : exit('ERROR code: Not found SYS_CONF {shorturl}'); if(!strpos($_url,"yunpan.cn/lk")){//获取postURL地址 $postht_get=curl_get_http($_url); preg_match('|(http:\/\/\w+\.\w+\.yunpan\.cn)\/lk\/\w+|',$postht_get,$posthttpu); $post_url=$posthttpu[1].'/share/downloadfile/'; } else{ preg_match('|(http:\/\/\w+\.\w+\.yunpan\.cn)\/lk\/\w+|',$_url,$yun_url); $post_url=$yun_url[1].'/share/downloadfile/'; } $post_data = array('nid' => $nid, 'shorturl' => $shorturl); $useragent = "BlackBerry/3.6.0"; $rt=curl_get($post_url,$post_data,0,$_url,$useragent,0); $obj = json_decode($rt); $errmsg=$obj->errmsg; if(strpos($errmsg,"成功")){ $dll=$obj->data->downloadurl; $dl_out = $dll ? $dll : exit('Can not get YunPan Download url!Please Check <a href="https://www.hhtjim.com/message-wall">here</a> .') ; header("Location: $dl_out");} else{ header("Content-Type: text/html; charset=utf-8"); echo '360云盘:'.$errmsg.'</br>Please Check <a href="https://www.hhtjim.com/message-wall">here</a> .'; } } exit('DIE!'); ?>
说明:将以上代码保存为yunpan.php。
若放在360目录需要修改22行/yunpan.php为/360/yunpan.php
代码不够精简,只有这样了。
1-27更新正则匹配,可保存为任意php文件名。
调用下载:http://XXX/yunpan.php?360=360云盘地址
支持两种360云盘URL格式
http://yunpan.cn/QXJ786DeBjeiW
http://ajvvqzy2v8.l29.yunpan.cn/lk/QXJ786DeBjeiW
博主你好,我在研究解析出来的播放的,解析得到下载地址后,如何调用播放呢?
你可以使用HTML5的audio标签播放音频 http:/ /www.w3school.com.cn/tags/tag_audio.asp
博主,我也在学习怎么解析网盘,看了下,就是post到密码校验地址,获取cookie,然后再去请求文件页面,获取nid 然后再post到下载地址,返回json数据,里面包含下载地址,但是不知道为什么,一直都获取不到cookie.能教教我吗?
这个页面的代码已经失效了。原理都一样。就是抓包,然后用php模拟。 获取cookie。。。使用curl函数需要开启CURLOPT_HEADER获取服务器返回的响应头 里面的set-cookie值就是你要的了
你最新的代码什么时候公布,调用
外链转换工具又崩了。。
放在jae,已习惯
🙂 这个不是最新的代码吧
的确不是,最新的没有想过
自己鼓捣吧 祝你好运~ 🙄
怎么下载的解析提示 ERROR code: Not found SYS_CONF {nid} 是怎么回事啊?
此页面的代码已经失效!
称呼*
电子邮件*
网站
插入图片
Δ
输入您的电子邮件…
订阅
博主你好,我在研究解析出来的播放的,解析得到下载地址后,如何调用播放呢?
你可以使用HTML5的audio标签播放音频
http:/ /www.w3school.com.cn/tags/tag_audio.asp
博主,我也在学习怎么解析网盘,看了下,就是post到密码校验地址,获取cookie,然后再去请求文件页面,获取nid 然后再post到下载地址,返回json数据,里面包含下载地址,但是不知道为什么,一直都获取不到cookie.能教教我吗?
这个页面的代码已经失效了。原理都一样。就是抓包,然后用php模拟。
获取cookie。。。使用curl函数需要开启CURLOPT_HEADER获取服务器返回的响应头 里面的set-cookie值就是你要的了
你最新的代码什么时候公布,调用
外链转换工具又崩了。。
放在jae,已习惯
🙂 这个不是最新的代码吧
的确不是,最新的没有想过
自己鼓捣吧 祝你好运~ 🙄
怎么下载的解析提示 ERROR code: Not found SYS_CONF {nid}
是怎么回事啊?
此页面的代码已经失效!