使用asp代码突破图片的防盗连_ASP教程-查字典教程网
使用asp代码突破图片的防盗连
使用asp代码突破图片的防盗连
发布时间:2016-12-29 来源:查字典编辑
摘要:从网上来的代码,,稍微修改了一些地方,其实用的是cache类。。保存代码为,比如pic.asp使用:http://www.xxx.com/p...

从网上来的代码,,稍微修改了一些地方,其实用的是cache类。。

保存代码为,比如pic.asp

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

不光是163,其实就是很多防盗连的图片都可以这个实现。

<%

'盗链判断

'IfInstr(Request.ServerVariables("http_referer"),"http://"&Request.ServerVariables("server_name")&"")=0Then

'Response.Write"非法链接"

'Response.End

'EndIf

Dimurl,body,myCache

url=Request.QueryString("url")

SetmyCache=newcache

myCache.name="picindex"&url

IfmyCache.validThen

body=myCache.value

Else

body=GetWebData(url)

myCache.addbody,dateadd("d",1,now)

EndIf

IfErr.Number=0Then

Response.CharSet="UTF-8"

Response.ContentType="application/octet-stream"

Response.BinaryWritebody

Response.Flush

Else

Wscript.EchoErr.Description

Endif

'取得数据

PublicFunctionGetWebData(ByValstrUrl)

Dimcurlpath

curlpath=Mid(strUrl,1,Instr(8,strUrl,"/"))

DimRetrieval

SetRetrieval=Server.CreateObject("Microsoft.XMLHTTP")

WithRetrieval

.Open"Get",strUrl,False,"",""

.setRequestHeader"Referer",curlpath

.Send

GetWebData=.ResponseBody

EndWith

SetRetrieval=Nothing

EndFunction

'cache类

classCache

privateobj'cache内容

privateexpireTime'过期时间

privateexpireTimeName'过期时间application名

privatecacheName'cache内容application名

privatepath'url

privatesubclass_initialize()

path=request.servervariables("url")

path=left(path,instrRev(path,"/"))

endsub

privatesubclass_terminate()

endsub

publicpropertygetblEmpty

'是否为空

ifisempty(obj)then

blEmpty=true

else

blEmpty=false

endif

endproperty

publicpropertygetvalid

'是否可用(过期)

ifisempty(obj)ornotisDate(expireTime)then

valid=false

elseifCDate(expireTime)<nowthen

valid=false

else

valid=true

endif

endproperty

publicpropertyletname(str)

'设置cache名

cacheName=str&path

obj=application(cacheName)

expireTimeName=str&"expires"&path

expireTime=application(expireTimeName)

endproperty

publicpropertyletexpires(tm)

'重设置过期时间

expireTime=tm

application.lock

application(expireTimeName)=expireTime

application.unlock

endproperty

publicsubadd(var,expire)

'赋值

ifisempty(var)ornotisDate(expire)then

exitsub

endif

obj=var

expireTime=expire

application.lock

application(cacheName)=obj

application(expireTimeName)=expireTime

application.unlock

endsub

publicpropertygetvalue

'取值

ifisempty(obj)ornotisDate(expireTime)then

value=null

elseifCDate(expireTime)<nowthen

value=null

else

value=obj

endif

endproperty

publicsubmakeEmpty()

'释放application

application.lock

application(cacheName)=empty

application(expireTimeName)=empty

application.unlock

obj=empty

expireTime=empty

endsub

publicfunctionequal(var2)

'比较

iftypename(obj)<>typename(var2)then

equal=false

elseiftypename(obj)="Object"then

ifobjisvar2then

equal=true

else

equal=false

endif

elseiftypename(obj)="Variant()"then

ifjoin(obj,"^")=join(var2,"^")then

equal=true

else

equal=false

endif

else

ifobj=var2then

equal=true

else

equal=false

endif

endif

endfunction

endclass

%>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新ASP教程学习
    热门ASP教程学习
    编程开发子分类