在他本站得到下载链接是这样: http://www.letget.com/theme/download.asp?softid=1783&downid=2&id=1696
但复制网址在新浏览器里打开就会跳转,无法下载
遇到这种情况可以用以下代码试试:
getDownUrl.php
<?php
class cls_http_command{
var $method,$Accept,$AcceptLanguage,$AcceptEncode;
var $userAgent,$Referer,$Host,$Cookie,$Connect,$RangeStart,$RangeEnd;
function cls_http_command() {
//类同名构造函数
//初始化变量
$method="GET"; //请求方法
$requestPage=""; //请求页
$Accept="*/*"; //接受类型
$AcceptLanguage="";//接受语言
$AcceptEncode="";//接受编码
$userAgent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; //浏览器类型(客户协议)
$Referer="";
$Host="";
$Cookie="";
$Connect="";
$RangeStart="";
$RangeEnd="";
}
}
function getfileheadbinhttp($filename,&$clsHttpCmd){
eregi("^(http://)?([^/:]*):?([^/]*)?(.*)?",$filename,$fileparts);
$port=($fileparts[3]=="")?80:intval($fileparts[3]);
$strCommands="";
$retBin=NULL;
if($fphttp=fsockopen($fileparts[2],$port,$errno,$errstr)){
$strCommands.= "HEAD ".$fileparts[4]." HTTP/1.1\n";
$strCommands.= "Host:".$fileparts[2]."\n";
$strCommands.= "Accept:".$clsHttpCmd->Accept."\n";
$strCommands.="User-Agent:".$clsHttpCmd->userAgent."\n";
if($clsHttpCmd->AcceptLanguage!="")$strCommands.="Accept-Language:".$clsHttpCmd->AcceptLanguage."\n";
$strCommands=$strCommands."Referer:".(($clsHttpCmd->Referer=="")?$fileparts[2]:$clsHttpCmd->Referer)."\n";
$strCommands.="Connect:Keep-Alive\n";
$strCommands.="\n";
fputs($fphttp,$strCommands);
$filesize=0;
$crlf=chr(13).chr(10);
$bodyEnd=chr(0).chr(0);
while(($parts=fgets($fphttp))&&$parts!=$crlf&&(substr($parts,-2)!=$bodyEnd))$retBin.=$parts;
fclose($fphttp);
return $retBin;
}
}
$strCommand=new cls_http_command();
$strCommand->Method="GET";
$strCommand->Referer="http://www.letget.com/theme/softdown.asp?softid=1783";
$strCommand->AcceptEncode="gzip, deflate";
$strCommand->AcceptLanguage="zh-cn";
$fileurl="http://www.letget.com/theme/download.asp?softid=1783&downid=2&id=1696";
if(isset($_POST["url"])){
$strHead=getfileheadbinhttp($_POST["url"],$strCommand);
eregi("Location:([^\n]*)?.*",$strHead,$regs);
echo "请通过以下链接下载资源:<a href='http://www.137t.com/php/Down.php?url=".str_replace(" ","",$regs[1])."' target='_balnk'>$regs[1]</a>";
}else{
$strHead=getfileheadbinhttp($fileurl,$strCommand);
eregi("Location:([^\n]*)?.*",$strHead,$regs);
}
?>
<form id="" name="" method="POST" action="">
<label>请在右边输入原始URL
<input type="text" name="url" size="80" />
</label>
<label>
<input type="submit" name="Submit" value="查询" />
</label>
<? if(!isset($_POST["url"])){?>
<BR>
以下红色部分是示例:
请通过以下链接下载资源:<?echo "<a href=http://www.137t.com/php/Down.php?url=".str_replace(" ","",$regs[1])." target=_balnk>http://www.137t.com/php/Down.php?url=$regs[1]</a>";?>;
<BR><font color=red><?echo $fileurl?></font><br>
<?}?>
</form>
down.php
<?php
function formatSize($size,$acuteDeg=3){
if($size>1073741824){
return strval(number_format($size/1073741824,$acuteDeg,".",""))."GB";
}elseif($size>1048576){
return strval(number_format($size/1048576,$acuteDeg,".",""))."MB";
}elseif($size>1024){
return strval(number_format($size/1024,$acuteDeg,".",""))."KB";
}else{
return strval($size)."Bytes";
}
}
class cls_http_command{
var $method,$Accept,$AcceptLanguage,$AcceptEncode;
var $userAgent,$Referer,$Host,$Cookie,$Connect,$RangeStart,$RangeEnd;
function cls_http_command() {
//类同名构造函数
//初始化变量
$method="GET"; //请求方法
$requestPage=""; //请求页
$Accept="*/*"; //接受类型
$AcceptLanguage="";//接受语言
$AcceptEncode="";//接受编码
$userAgent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; //浏览器类型(客户协议)
$Referer="";
$Host="";
$Cookie="";
$Connect="";
$RangeStart="";
$RangeEnd="";
}
}
function getfileheadbinhttp($filename,&$clsHttpCmd){
eregi("^(http://)?([^/:]*):?([^/]*)?(.*)?",$filename,$fileparts);
$port=($fileparts[3]=="")?80:intval($fileparts[3]);
$strCommands="";
$retBin=NULL;
if($fphttp=fsockopen($fileparts[2],$port,$errno,$errstr)){
$strCommands.= "HEAD ".$fileparts[4]." HTTP/1.1\n";
$strCommands.= "Host:".$fileparts[2]."\n";
$strCommands.= "Accept:".$clsHttpCmd->Accept."\n";
$strCommands.="User-Agent:".$clsHttpCmd->userAgent."\n";
if($clsHttpCmd->AcceptLanguage!="")$strCommands.="Accept-Language:".$clsHttpCmd->AcceptLanguage."\n";
$strCommands=$strCommands."Referer:".(($clsHttpCmd->Referer=="")?$fileparts[2]:$clsHttpCmd->Referer)."\n";
$strCommands.="Connect:Keep-Alive\n";
$strCommands.="\n";
fputs($fphttp,$strCommands);
$filesize=0;
$crlf=chr(13).chr(10);
$bodyEnd=chr(0).chr(0);
while(($parts=fgets($fphttp))&&$parts!=$crlf&&(substr($parts,-2)!=$bodyEnd))$retBin.=$parts;
fclose($fphttp);
return $retBin;
}
}
$strCommand=new cls_http_command();
$strCommand->Method="GET";
$strCommand->Referer="http://www.letget.com/theme/download.asp?softid=1783&downid=2&id=1696";
$strCommand->AcceptEncode="gzip, deflate";
$strCommand->AcceptLanguage="zh-cn";
$fileurl="http://down.letget.com/2007/06/OpusOS.rar";
echo $url;
if(isset($_GET["url"])){
$strHead=getfileheadbinhttp($_GET["url"],$strCommand);
eregi("Content-Length:([^\n]*)?.*",$strHead,$regs);
$filesize=intval($regs[1]);
echo "本破防盗链技术由<B>动网PHP</b>提供,请联系:<B>fjjhhww@163.com</b>或QQ:<B>8473803</b>获得更多技术支持<BR>注意:本网址只做为演示用,不用于真正下载<BR>你将要下载的资源地址:".$_GET["url"]." : 资源大小: ".formatSize($filesize,2);
} else{
$strHead=getfileheadbinhttp($fileurl,$strCommand);
eregi("Content-Length:([^\n]*)?.*",$strHead,$regs);
$filesize=intval($regs[1]);
echo("参数错误,请传入正确的url<BR>以下示例下载资源大小".$fileurl." : ".formatSize($filesize,2));
}
?>