当前位置:首页>>开发编程>>ASP>>新闻内容  |虚拟主机 主机托管
附破解网易163相册的ASP代码
作者: 发布时间:2006-7-17 12:54:01 | 【字体:

将代码保存为asp文件,连接方式如pic.asp?url=地址

 <
'盗链判断 
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
 
%
>  

 

将代码保存为asp文件,连接方式如pic.asp?地址

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936" ENABLESESSIONSTATE="FALSE"%>
<%Option Explicit%>
<%
'+---------------------------------------------------------+
'
|        Aocool Studio Photo / Gallery Magic Show         |
'
|      Copyright (c) 2005 - 2006 Aocool Studio Ltd.       |
'
+---------------------------------------------------------+
Server.ScriptTimeout = 300
Response.Buffer 
= True

On Error Resume Next

Function IsNullOrEmpty(ByVal String)
        IsNullOrEmpty 
= IsNull(StringOr String = ""
End Function


Function GetImage(ByVal URL)
        
Dim oXmlHttp
        
Set oXmlHttp = Server.CreateObject("Msxml2.XMLHTTP")

        
If Err.Number <> 0 Then
                Response.
Write("XMLHTTP Object not installed on this server, please go to Microsoft website download and install it.")
                Response.
End()
        
End If

        oXmlHttp.Open 
"GET", URL, False
        oXmlHttp.setRequestHeader 
"Referer", URL
        oXmlHttp.setRequestHeader 
"User-Agent""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
        oXmlHttp.Send()
        
        
If oXmlHttp.readyState <> 4 Then
                GetImage 
= ""
        Else
                GetImage 
= oXmlHttp.responseBody
        
End If

        
Set oXmlHttp = Nothing
End Function


Function GetContentType(ByVal FileName)
        
Dim FileExtension, ContentType
        FileExtension 
= Mid(FileName, InStrRev(FileName, "."+ 1)
        
        
Select Case FileExtension
                
Case "jpe"
                        ContentType = "image/jpeg"
                Case "jpg"
                        ContentType = "image/jpeg"
                Case "jpeg"
                        ContentType = "image/jpeg"
                Case "gif"
                        ContentType = "image/gif"
                Case "bmp"
                        ContentType = "image/bmp"
                Case "png"
                        ContentType = "image/png"
                Case "pnz"
                        ContentType = "image/png"
                Case Else
                        ContentType 
= "text/html"
        End Select

        GetContentType 
= ContentType
End Function


Dim URL, Bin
URL 
= Request.ServerVariables("QUERY_STRING")
Bin 
= GetImage(URL)

        
If IsNullOrEmpty(URL) = False Then
                
If Bin <> "" Then
                        Response.ContentType 
= GetContentType(URL)
                        Response.BinaryWrite Bin
                        Response.Flush
                
Else
                        Response.ContentType 
= "text/html"
                        Response.Write("Remote Server Error.")
                
End If
        
Else
                Response.ContentType 
= "text/html"
                Response.Status = "400 Bad Request"
                Response.Write("400 Bad Request")
        
End If
%
>

 

引用格式:get163.php?p=地址

 

<?php
//远程调用163相册图片
//http://blog.cnstorm.com
//Ian.Lee
//2006-3-5
$p=$_GET["p"];
if(!preg_match("/http:\/\/img([0-9]+).photo.163.com\/([a-z0-9_-]+)\/([0-9]+)\/([0-9]+).(gif|jpg)/i",$p))exit();//这个正则你可以替换下
if (substr($p,-4)==".jpg")
        {header("Content-type: image/jpeg\n\n");}
        else
        {header("Content-type: image/gif\n\n");}
@readfile($p);
?>

做了一个网易相册贴图代码生成器

http://www.mysea.net/download/js/163pic.html


文章来源:Venchias Blog
·ASP的escape和unescape函数
·使用AspUpload组件上传事例代码
·Godaddy虚拟主机使用AspUpload组件的方法
·怎样解决ASP图片上传漏洞的方法
·ASP里面的四舍五入函数Round和FormatNumber
·ASP 程序实现自动升级功能
·chr码值对应列表大全
·用正则表达式搜索网页手机号码和Email
·ASP在线转flv+所略图+flash在线录制视频
·让163网易相册QQ相册里的照片也能外链
 放生
 愚爱
 够爱
 触电
 白狐
 葬爱
 光荣
 画心
 火花
 稻香
 小酒窝
 下雨天
 右手边
 安静了
 魔杰座
 你不像她
 边做边爱
 擦肩而过
 我的答铃
 怀念过去
 等一分钟
 放手去爱
 冰河时代
 你的承诺
 自由飞翔
 原谅我一次
 吻的太逼真
 左眼皮跳跳
 做你的爱人
 一定要爱你
 飞向别人的床
 爱上别人的人
 感动天感动地
 心在跳情在烧
 玫瑰花的葬礼
 有没有人告诉你
 即使知道要见面
 爱上你是一个错
 最后一次的温柔
 爱上你是我的错
 怎么会狠心伤害我
 不是因为寂寞才想
 亲爱的那不是爱情
 难道爱一个人有错
 寂寞的时候说爱我