微云网盘php解析源码_更新
作者:matrix 被围观: 10,331 次 发布时间:2014-01-06 分类:零零星星 | 142 条评论 »
💡NOTICE:这是一个创建于 2608 天前的主题,其中的信息可能已经有所发展或是发生改变。
应小伙伴的留言放出源码,并考虑多文件的情况。
这代码弄了好几天才搞出来的,100多行不容易。 🙄
本人菜鸟,代码上有问题的地方欢迎指正 互相学习!! 爱好php~
版本说明:
大于100MB,有提取密码的文件外链会失败。
放到BAE上不知道啥原因 总是403 503 错误,不过我在本地测试是成功的。其他未知
解决:
bae 403错误,正如Lostape所说,正则匹配的问题。
preg_match('|\.php\??\/(.*)\.\w+|',$_SERVER["REQUEST_URI"],$ur);
大部分的bae 503错误,应该是有太长的& or ?& 导致的。具体不详
更多BUG中~
使用说明:
微云:http://share.weiyun.com/eec279cd08578598b84e92403b3d5e99
普通下载:http://localHOST/weiyun.php/eec279cd08578598b84e92403b3d5e99.flv
BAE调用下载:http://ฏ๎๎๎๎๎๎๎๎๎ฏ ้้้ฏด้้้้้็็็็็้้้้้็็.duapp.com/t.php?/eec279cd08578598b84e92403b3d5e99.flv(尝试兼容bae)
http://ฏ๎๎๎๎๎๎๎๎๎ฏ ้้้ฏด้้้้้็็็็็้้้้้็็.duapp.com/t.php?u=eec279cd08578598b84e92403b3d5e99(再度尝试兼容bae)
技术问题,BAE上常出现503错误。不保证绝对可用,欢迎测试!!
源码(已失效):
http://pan.baidu.com/s/1c05TCK4 #密码: kh0e(再度尝试兼容bae)
http://pan.baidu.com/s/1jGt6bSa #密码: t5t1 (尝试兼容bae)
http://pan.baidu.com/s/1EeYiq%20 #密码:32my
再来mp3测试:
源码:
<?php
/**
* 微云解析 V200115
* Author:不懂就乱来
* Website:https://www.hhtjim.com
* 13-12-27 15:46 主体编写完成
* 2014/1/5 添加多文件的情况
* 2014/1/15 解决BAE上的503错误
**/
error_reporting(0);
$ttim = 600; //使用前需要配置缓存时间:600毫秒 = 10分钟
preg_match('|\.php\??\/(.*)\.\w+|', $_SERVER["REQUEST_URI"], $ur);
if (!isset($ur) || $ur == null)
{
exit('Please Check <a href="https://www.hhtjim.com/message-wall#comment">here.');
}
$url = 'http://share.weiyun.com/' . $ur[1];
$class = new weiyun();
$conpage = $class->curl_get($url);
preg_match('|var shareInfo = ({.*?});|', $conpage, $con_json);
if (!$con_json)
{
exit('Please Check <a href="https://www.hhtjim.com/message-wall#comment">here.');
}
$obj = json_decode($con_json[1], true);
preg_match('|url\.cn\/(\w+)|', $obj['short_url'], $surl);
$zn = $obj['file_list'][0]['file_name'];
preg_match('|([\s\S]+)\.([^\.]+)$|', $zn, $type);
$sename = "wy-$surl[1]";
$name = $type ? $type[1] : 'HHTJIM.com_file';
$houzui = $type ? $type[2] : 'TMD什么文件';
preg_match('|(http:\/\/[^"]+ftn_handler[^"]+)\?fname=|', $class->curl_get($url), $res);
if ($res)
{
$dl[0] = $res[1] . '?&fname=' . $name . time() . '.' . $houzui;
}
else
{
session_id($sename);
session_start();
parse_str($_SESSION[$sename], $info);
if ($_SESSION[$sename] && $info['times'] + $ttim > time())
{
if (strpos($_SESSION[$sename], 'qq.com:443')) // 若匹配到多文件打包
{
$dl = explode('/?&', $_SESSION[$sename]);//解决BAE上的503错误
}
else
{
$dl = explode('&', $_SESSION[$sename] . '&fname=' . $name . time() . '.' . $houzui);
}
}elseif ($_SESSION[$sename] && $info['times'] + $ttim <= time())
{
if (strpos($class->get_wy_dl($url), 'qq.com:443'))
{
$dl = explode('/?&', $class->get_wy_dl($url));
}
else
{
$dl = explode('&', $class->get_wy_dl($url)) ;
}
}elseif (emptyempty($_SESSION[$sename]))
{
if (strpos($class->get_wy_dl($url), 'qq.com:443'))
{
$dl = explode('/?&', $class->get_wy_dl($url));
}
else
{
$dl = explode('&', $class->get_wy_dl($url)) ;
}
}
}
header("Location: " . $dl[0]);
class weiyun
{
var $url;
public function get_wy_dl($url)
{
$conpage = $this->curl_get($url);
preg_match('|var shareInfo = ({.*?});|', $conpage, $con_json);
$obj = json_decode($con_json[1], true);
preg_match('|url\.cn\/(\w+)|', $obj['short_url'], $surl);
$sename = "wy-$surl[1]";
$conpage = $this->curl_get($url);
preg_match('|var shareInfo = ({.*?});|', $conpage, $con_json);
$this->url = $url;
$zn = $obj['file_list'][0]['file_name'];
preg_match('|([\s\S]+)\.([^\.]+)$|', $zn, $type);
$name = $type ? $type[1] : 'HHTjim.Com_file';
$houzui = $type ? $type[2] : 'TMD什么文件';
$obj_fid = json_decode($con_json[1]); //多文件的情况
$fidarry = $obj_fid->file_list;
foreach ($fidarry as $fids)
{
$fid[] = $fids->file_id;
}
$fid = implode(',', $fid);
$pdir = $obj['pdir_key'];
$sharekey = $obj['share_key'];
$dlskey = $obj['dlskey'];
$uin = $obj['uin'];
$lurl = "http://web.cgi.weiyun.com/share_dl.fcg?browser=mozilla&dir=&fid=$fid&os_info=windows&pdir=$pdir&sharekey=$sharekey&skey=&uin=$uin&ver=12&zn=" . time(); //修复BUG:CURL时&zn(文件名)参数后面出现阿拉伯文会400 bad错误
$header[] = "Cookie: dlskey=$dlskey";
$header[] = "Referer: " . $this->url;
$header[] = "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0";
$rt = $this->curl_get($lurl, null, null, null, null, $header);
preg_match('|Location: (.*)(\?fname=)?|', $rt, $do);
if ($do)
{
if (strpos($do[1], 'qq.com:443')) // 若匹配到多文件打包,则输出,加缓存探针
{
$dl = $do[1] . '/?×=' . time();
$_SESSION[$sename] = $dl;
return $dl;
}
else
{
$dl = $do[1] . '?×=' . time();
$_SESSION[$sename] = $dl;
return $dl . '&fname=' . $name . time() . '.' . $houzui;
}
}
else // 外链失败,跳转到微云文件URL
{
unset($_SESSION[$sename]);
return $this->url;
}
}
public function curl_get($url, $post = false, $carry_header = true, $REFERER_ = false, $useragent = false, $add_arry_header = null)
{
$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;
}
}
?>
看看啊怎么搞的
😛
还能用吗? ❓
来看看支持下
🙂
❗ 😎 😈 ➡
不是有的伙伴说测试可用吗,怎么不行
😛 😛 😛 😛 😛 😛
😛 😛 😛 😛 😛 😛 😛 😛
还能用吗
还能用吗
斯蒂芬森
前来学习
需要这个源码
看看还可以用不 😀
谢谢 测试可用哦~
看看看呢!!
好东西啊 🙂
👿 真的很好
看看好用不
😯 2342343342243432反动的方法
试试
啊啊啊啊
我只看看不说话
🙁 😛 别下了
😮 😮 😮 😮 😮 😮 地
现在这页面的源码已经失效了吗?
是啊 已经失效
😳
😛
能不能更新啊
博主能更新代码吗?please
mp3还能播放啊
这玩意我找了很久了 自己有些不出来 真是好东西
🙂 🙂 🙂 🙂
看一下源码 😛
看一看源码
不能用了么?
谢谢分享。辛苦了。。。 😛
现在这个方法还可以用吗?
不能 已经失效
顶一个 😛
什么情况
现在还能用吗???
非常不错的代码啊
22cc 😛 😛 😛 😛 😛 哈啊哈
还能不能用啊
不知道还你那个用 不
真心醉了
一起想拿到技术
❓ 一直都不行了,今天来发现测试是可以的,看看是什么问题。
是微云的链接过期了。
看看百度的外链还有效吗
现在又有效了,昨是有问题。jae的缘故
😛 😛 支持一个很好
支持一下。不知道还能用不?
现在又不能用了. 博主有更新吗?
源码可以用的。
只是现在的微云链接有效期很短,过不了几天就失效了。
正在努力寻求一个外链~~~
净网行动导致很多网盘都不能用了
诶,不折腾了,转PCS了,给点钱就给点了
现在还能用么
不能了。 网盘链接都失效了
好多。。。。。
谢谢公开
博主太棒了。感谢分享
🙁 不错哦 谢谢
难道有更新了么
支持。。。 谢谢老大。
来学习一下
😆 😆 😆 😆 😆 😆 😆 😆 😆 😆 😆 😆 😆 😆 😆 😆
现在还能不能用????????????????????
可以用的啊 没得问题
找了很多都不能用,就这里的能用,看来楼主技术很厉害
博主有没有遇到这样一种情况:连续正确解析五次地址之后就要填验证码,header 里面的location变成了:http://www.weiyun.com/web/callback/iframe_share_down_fail.html?ret=130010&msg=
嗯 的确有验证码。不过有缓存那就好多了
Something I need,很棒
楼主很强大,网站很多资料记录都值得学习
支持啊,谢谢发布很喜欢
看看吧
看看看看
谢谢您的分享
😛 感谢分享,正需要
❓ 支持下!好东西!
支持啊 试试看 😀
🙂 感谢分享、正需要
来看看了!~~ 🙂
看看了
原来你这里有啊
谢谢了 哈哈
😎 😎 😎 😎 😎
试试 。。看看
😳 太棒了
😛 😛 不错不错
Take a look,谢谢分享
😛 楼主厉害~谢谢那么热心分享
谢谢分享, 😀
我看看这个外链好不好用啊
谢谢分享
好像不能直接登陆
学学...................
😛 博主好技术
不行呢
不存在啊 我那demo都活的
看不到呢
😆 ❗ 赞一个
Hello,强哥又来了! 😆
BAE调用下载指的是什么意思哦,还有那个T,PHP是对应放到根目录的PHP吗?
如果是BAE上使用就用那。若是普通主机就是普通下载。bae上不好搞,我真没办法。 t.php里的t只是文件名,任意名字都行。
嗯 是对应的php文件
我想说,这是撒ฏ๎๎๎๎๎๎๎๎๎ฏ
哈哈 像鸟文一样的字符。utf8编码下才有的
要回复了
围观一下下,感觉很厉害的样子! 👿
希望没白来
看看更新了什么
MS发布了英文
BAE上还是不行。
嗯,没搞好。 都改了好几个版本 弄晕了 +_+
试试用我app上的:http://pan.baidu.com/s/1c05TCK4 #密码: kh0e(再度尝试兼容bae)
调用:/wy.php?u=微云的ID
这个有时下载还是会503的。祝你好运~ 相比之前的应该好些了吧
BAE依旧不行。博主的pan.hhtjim.com 很强大,为什么不把这里的微云分享下呢
我放出来的微云源码就是外链工具上的,只是我用了伪静态。我搞不懂你们怎么都没法用。 你给个地址我看看
我这微云也是有时放不出来的
点我的昵称。你这里发不了英文评论
你的可以下载啊
http://51update.duapp.com/wy.php?u=1263a0e83c27b84e467348b5efb334fa
如果你硬要.mp3的话就得伪静态。
添加URL规则: /wy/(.*)/.*\.?.*
执行规则: /wy.php?u=$1
最终伪静态形式:http://link.hhtjim.com/wy/b500a423288e8d0095d49657fe21438b/逆战-张杰.mp3 即可下载
直接这样 http://51update.duapp.com/wy/1263a0e83c27b84e467348b5efb334fa.mp3 为什么不行呢
何必纠结以前的呢。我只是改了下获取参数的方式,以前那个不这么好。
建议你弄个伪静态的规则。 😀 照样好看
这样就文件名任意,后缀必须要
本地测试和服务器空间测试均没有成功。不知道怎么搞的,我再看看。
支持个,最近在考试,忙啊
下载试试 貌似很高端啊
欢迎测试
老大我的国内空间 可以使用
太感谢老大了!谢谢了啊!支持HHTJIM
😀 看到后面一句有些不适应
这外链的速度真心快~~~
的确 一首歌秒下
厉害啊。。。
😯
代码是有点多,不过能搞定才是硬道理。
嗯 就是
你测试这php能用么 本地上能成功,我放在bae上有问题
这个,preg_match('|\.php\/(.*)\.\w+| BAE不支持这样写!
那该怎么写呢
试试
preg_match('|\.php\??\/(.*)\.\w+|',$_SERVER["REQUEST_URI"],$ur);
不行。VPS上测试正常,百度BAE不行
好东西~
😀 众乐乐