Class ASP: 第三地 server 之 ASP 利用 ServerXmlhttp 與 Adodb.Stream 中轉看圖
2015-02-23 分類:web 技術 閱讀次數:1959 評論(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」







評論
發表評論