當前位置:首頁 > web 技術 > Class ASP: 第三地 server 之 ASP 利用 ServerXmlhttp 與 Adodb.Stream 中轉看圖
2月23th

Class ASP: 第三地 server 之 ASP 利用 ServerXmlhttp 與 Adodb.Stream 中轉看圖

油拉林 web 技術 2

imgtrex.com 是個圖床網站,它不讓港澳台及大陸地區網友進入看圖,實在很小氣。


Class ASP: 第三地 server 之 ASP 利用 ServerXmlhttp 與 Adodb.Stream 中轉看圖

在ASP中,可以利用 ServerXmlhttp 與 Adodb.Stream 兩個元件,完成中轉圖片的任務。imgtrex.com 不讓港澳台及大陸地區網友進入看圖,我們可以使用其他地區的server來抓圖,並中轉過來顯示。

如下程式碼所示:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
'///////////////////////////////////////////////////////////////////////////////
'//              Z-Blog
'// 作    者:    Robert Chen
'// 版权所有:    
'// 技术支持:    
'// 程序名称:    
'// 程序版本:    
'// 单元名称:    getimgtrexcom.asp
'// 开始时间:    2015-2-22
'// 最后修改:    
'// 备    注:    Class ASP: 第三地 server 之 ASP 利用 ServerXmlhttp 與 Adodb.Stream 中轉看圖
'///////////////////////////////////////////////////////////////////////////////
%>
<% Option Explicit %>
<% Response.Charset="UTF-8" %>
<% Response.Buffer=True %>
<%
Function BytesToBstr(body, Cset)
On Error GoTo 0
    Dim ObjStream   '' As ADODB.Stream
    Set ObjStream = server.CreateObject("ADODB.Stream")
    With ObjStream
        .Type = 1           'adTypeBinary
        .Mode = 3
        .open
        .Write body
        .Position = 0
        .Type = 2
        .Charset = Cset
        BytesToBstr = .ReadText
        .Close
    End With
    Set ObjStream = Nothing
End Function

Dim strURL, strResponse, sTEMP, imgs, oStream
strURL=Request.querystring("url")
if instr(strURL,"imgtrex.com") <=0 then response.end

Dim oXMLHTTP            '' As MSXML2.ServerXMLHTTP
Set oXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
With oXMLHTTP
    .open "GET", strURL, False
    ' resolve, connect, send, receive - in milliseconds
    .setTimeouts 50000, 600000, 100000, 100000
    .send
    If .readyState <> 4 Then response.end

    strResponse = BytesToBstr(.responseBody, "UTF-8")
    'extract image url'
    sTEMP = "http://trex.imgtrex.com/img" & Split(Split(strResponse, "http://trex.imgtrex.com/img")(1), Chr(34))(0)
    .open "GET", sTEMP, False
    ' resolve, connect, send, receive - in milliseconds
    .setTimeouts 50000, 600000, 100000, 100000
    .send
    If .readyState <> 4 Then response.end
    imgs = .responseBody
	If IsNull(imgs) Then response.end
	If IsEmpty(imgs) Then response.end
	If Len(imgs) = 0 Then response.end

	Set oStream = server.CreateObject("ADODB.Stream")
	oStream.Type = 1
	oStream.open
	oStream.Write imgs
	oStream.Position=0
	Response.ContentType = "image/jpeg"
	Response.BinaryWrite oStream.read
	oStream.Close
	Set oStream = Nothing

    'response.write strResponse

End With
Set oXMLHTTP = nothing
%>

使用者只需在網址列上輸入正確位置,即可獲得圖片。例如:

http://www.yesjav.com/zb_system/robert/getimgtrexcom.asp?url=http://imgtrex.com/9btoi71gnr9r/TSEDINBtru89v.jpeg


目前有 + 人訪問,有 2+ 條評論! 感謝支持!

请保持页脚主题版权链接,对不知尊重别人劳动者不予提供帮助!