用PHP伪造referer突破网盘禁止外连的代码_PHP教程

WBOY
풀어 주다: 2016-07-21 15:51:49
원래의
1027명이 탐색했습니다.

比如我放纳米盘里的文件http://img.namipan.com/downfile/da333ee178bdad6531d1ec1540cf86277c116b6300887600/02.Paid%20In%20Full.mp3

这个地址不能直接下载也不能在网页播放器里播放,点击下载转到了一个下载页面。要想能够直接下载这个文件或播放这个文件,那就要伪造referfer,欺骗服务器,referfer是来自纳米盘的链接。

最开始使用的方法是用PHP内置的函数stream_context_create。

代码如下:

function referfile($url, $refer=”) {
$opt=array('http'=>array('header'=>”Referer: $refer”));
$context=stream_context_create( $opt);
return file_get_contents($url,false, $context);
}

但这段代码有个缺点,file_get_contents实际上是把对方服务器的文件读取到了自己的服务器上然后再发送给浏览器,不但加大自己服务器的压力,而且下载反应速度还很慢,这个并不是很好的解决方法。

后来又看了遍手册,既要减轻自己服务器的压力,又能达到迷惑对方服务器。修改header里的Referfer信息就可以了。

改版后的代码如下:
$url=”img.namipan.com/downfile/da333ee178bdad6531d1ec1540cf86277c116b6300887600/02.Paid%20In%20Full.mp3″;//这里的url要过滤掉http://
$urlarr=explode(”/”,$url);
$domain=$urlarr[0];//分解出域名
$getfile=str_replace($urlarr[0],”,$url);
$content = @fsockopen(”$domain”, 80, $errno, $errstr, 12);//先连接上对方的服务器
if (!$content){//无法链接就提示错误信息
die(”对不起,无法连接上 $domain 。”);
}
fputs($content, “GET $getfile HTTP/1.0\r\n”);
fputs($content, “Host: $domain\r\n”);
fputs($content, “Referer: $domain\r\n”);//伪造referfer
fputs($content, “User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n\r\n”);

while (!feof($content)) {
$tp.=fgets($content, 128);将头部信息读取出来,里面将包含:Location:http://xxx/xxx.mp3,我们要的就是这个地址。
}
$arr=explode(”\n”,$tp);
$arr1=explode(”Location: “,$tp);
$arr2=explode(”\n”,$arr1[1]);//分解出Location:后面的地址
header('Content-Type:application/force-download');
header(”location:”.$arr2[0]);
fclose($content);

OK,目的达到了。

这个原来的地址:http://img.namipan.com/downfile/3a7c64518d46d986283eab73175a8b119305a76480b89200/Equilibrium-Turis_Fratyr-02-Wingthors_Hammer.mp3

转换后:

http://mms.music.krmcn.com/mms.music/namipan/img~~/3a7c64518d46d986283eab73175a8b119305a76480b89200/Equilibrium-Turis_Fratyr-02-Wingthors_Hammer.mp3

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/319077.htmlTechArticle比如我放纳米盘里的文件http://img.namipan.com/downfile/da333ee178bdad6531d1ec1540cf86277c116b6300887600/02.Paid%20In%20Full.mp3 这个地址不能直接下载也不能在网...
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿