加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

运用asp代码突破图片的防盗连

发布时间:2023-09-07 14:28:30 所属栏目:Asp教程 来源:
导读:从网上来的代码,,稍微修改了一些地方,其实用的是cache类。。

保存代码为,比如pic.asp

使用:http://www.xxx.com/pic.asp?url=http://www.aaaa.com/log.gif

不光是163,其实就是很多防盗连的图片都可以
从网上来的代码,,稍微修改了一些地方,其实用的是cache类。。
 
保存代码为,比如pic.asp
 
使用:http://www.xxx.com/pic.asp?url=http://www.aaaa.com/log.gif
 
不光是163,其实就是很多防盗连的图片都可以这个实现。
 
<%
 
'盗链判断
 
'If Instr(Request.ServerVariables("http_referer"),"http://"&Request.ServerVariables("server_name")&"") = 0 Then
 
'Response.Write "非法链接"
 
'Response.End
 
'End If
 
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
 

 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章