破解图片防盗链的代码(asp/php)测试通过

2015-01-24信息快讯网
php版的代码比较简单:
 
<?php 
$p=$_GET['p']; 
$pics=file($p); 
for($i=0;$i< count($pics);$i++) 
{ 
echo $pics[$i]; 
} 
?> 


使用方法:将文件保存成i.php上传到根目录
将不能外链的图片地址改成http://你的域名p.php?p=图片地址

asp版,网上用的比较多的
<% 
Dim url, body, myCache 
url = Request.QueryString("url") 
Set myCache = new cache 
myCache.name = "picindex"&url 
If myCache.valid Then 
body = myCache.value 
Else 
body = GetWebData(url) 
myCache.add body,dateadd("d",1,now) 
End If 
If Err.Number = 0 Then 
Response.CharSet = "UTF-8" 
Response.ContentType = "application/octet-stream" 
Response.BinaryWrite body 
Response.Flush 
Else 
Wscript.Echo Err.Description 
End if 
'取得数据 
Public Function GetWebData(ByVal strUrl) 
Dim curlpath 
curlpath = Mid(strUrl,1,Instr(8,strUrl,"/")) 
Dim Retrieval 
Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP") 
With Retrieval 
.Open "Get", strUrl, False,"","" 
.setRequestHeader "Referer", curlpath 
.Send 
GetWebData =.ResponseBody 
End With 
Set Retrieval = Nothing 
End Function 
'cache类 
class Cache 
private obj 'cache内容 
private expireTime '过期时间 
private expireTimeName '过期时间application名 
private cacheName 'cache内容application名 
private path 'url 
private sub class_initialize() 
path=request.servervariables("url") 
path=left(path,instrRev(path,"/")) 
end sub 
private sub class_terminate() 
end sub 
public property get blEmpty 
'是否为空 
if isempty(obj) then 
blEmpty=true 
else 
blEmpty=false 
end if 
end property 
public property get valid 
'是否可用(过期) 
if isempty(obj) or not isDate(expireTime) then 
valid=false 
elseif CDate(expireTime)<now then 
valid=false 
else 
valid=true 
end if 
end property 
public property let name(str) 
'设置cache名 
cacheName=str & path 
obj=application(cacheName) 
expireTimeName=str & "expires" & path 
expireTime=application(expireTimeName) 
end property 
public property let expires(tm) 
'重设置过期时间 
expireTime=tm 
application.lock 
application(expireTimeName)=expireTime 
application.unlock 
end property 
public sub add(var,expire) 
'赋值 
if isempty(var) or not isDate(expire) then 
exit sub 
end if 
obj=var 
expireTime=expire 
application.lock 
application(cacheName)=obj 
application(expireTimeName)=expireTime 
application.unlock 
end sub 
public property get value 
'取值 
if isempty(obj) or not isDate(expireTime) then 
value=null 
elseif CDate(expireTime)<now then 
value=null 
else 
value=obj 
end if 
end property 
public sub makeEmpty() 
'释放application 
application.lock 
application(cacheName)=empty 
application(expireTimeName)=empty 
application.unlock 
obj=empty 
expireTime=empty 
end sub 
public function equal(var2) 
'比较 
if typename(obj)<>typename(var2) then 
equal=false 
elseif typename(obj)="Object" then 
if obj is var2 then 
equal=true 
else 
equal=false 
end if 
elseif typename(obj)="Variant()" then 
if join(obj,"^")=join(var2,"^") then 
equal=true 
else 
equal=false 
end if 
else 
if obj=var2 then 
equal=true 
else 
equal=false 
end if 
end if 
end function 
end class 
%>

使用方法:将文件保存成i.asp上传到根目录
将不能外链的图片地址改成http://你的域名/p.asp?url=图片地址
为方便大家使用,复制的代码,容易出现错误。特打包下载
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
PHP中文件缓存转内存缓存的方法
php urlencode()与urldecode()函数字符编码原理详解
PHP中实现中文字符进制转换原理分析
PHP性能优化工具篇Benchmark类调试执行时间
PHP详解ASCII码对照表与字符转换
php数组函数序列之array_splice() - 在数组任意位置插入元素
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
提示Trying to clone an uncloneable object of class Imagic的解决
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
php设计模式 Chain Of Responsibility (职责链模式)
sphinx增量索引的一个问题
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error
PHP中调用ASP.NET的WebService的代码
php模拟asp中的XmlHttpRequest实现http请求的代码
php防盗链的常用方法小结
用PHP为SHOPEX增加日志功能代码
php操作excel文件 基于phpexcel
PHP 多维数组排序(usort,uasort)
PHP 数组遍历方法大全(foreach,list,each)
PHP extract 将数组拆分成多个变量的函数
PHP,ASP.JAVA,JAVA代码格式化工具整理
javascript 小型动画组件与实现代码
php disk_free_space 返回目录可用空间
基于asp+ajax和数据库驱动的二级联动菜单
asp.net Repeater控件的说明及详细介绍及使用方法
用php或asp创建网页桌面快捷方式的代码
Asp.net 文本框全选的实现
©2014-2024 dbsqp.com