• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用asp代码突破图片的防盗连
    从网上来的代码,,稍微修改了一些地方,其实用的是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 
    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 
    %> 
    上一篇:TSYS 新闻列表JS调用下载
    下一篇:一种理论上最快的Web数据库分页方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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