欢迎光临
我们一直在努力

突破网易相册的反盗链(源码展示)

网易相册,免费,无限容量,存取速度快,而且支持批量上传图片,用着很方便

可因为有防盗链的措施…

比如你看到一张图片,按传统办法查看地址(右键点属性查看),想把他放到别的网站里展示可出来的却是
""

网易相册的原理是将展示的图片缓存到你的IE临时文件夹下,并在Cookies里记录.
所以你在网易自己的相册看或者临时引用图片时还能正常显示.可一但你关闭网易相册,清除了Cookies的话,那图片就肯定失效了…

解决的方法来了…
像上面的图片就是网易图片的地址:http://img.photo.163.com/Pj3zecFldiP8m1lHKL_ong==/195062158861180853.gif
显示出来就是
""这样了,

你只需要在图片地址前面加上 http://xiez.cn/cwin/get163.asp?url= 就可以了,地址就是这样的了:http://xiez.cn/cwin/get163.asp?url=http://img.photo.163.com/Pj3zecFldiP8m1lHKL_ong==/195062158861180853.gif
显示效果:
""
不行的话大家可以看看图片的属性啊

下面给出get163.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 
%>

赞(0) 打赏
未经允许不得转载:刘旭的人个博客 » 突破网易相册的反盗链(源码展示)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

QQ :13945502电话:13913571631

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

×
订阅图标按钮