Class ASP: 第三地 server 之 ASP 利用 ServerXmlhttp 與 Adodb.Stream 中轉看圖
2015-02-23 分類:web 技術 閱讀次數:1680 評論(2)imgtrex.com 是個圖床網站,它不讓港澳台及大陸地區網友進入看圖,實在很小氣。
在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
轉載請註明出處為「本文轉載於『油拉林』原地址: http://blog.hiastro.com.tw/webtechs/asp-imgtrex-XMLHTTP」
評論
發表評論