[转]xmlhttp实例-一个完整的pagerank查询小偷带示例

本程序三个页面,其中的远程获取类非常不错.
这个也是学习asp小偷程序的好例子.
页面演示见:http://www.aspxuexi.com/forfun/pagerank/pr.asp
三个页面:
CLS_Asphttp.asp
<% '================================================================= '飞扬远程获取类(AspHttp) 1.0.1 Bate1 ' By 奔腾的心 ' 2006-04-19 '================================================================= Class FlyCms_AspHttp Public oForm,oXml,Ados Public strHeaders Public sMethod Public sUrl Public sReferer Public sSetCookie Public sLanguage Public sCONTENT Public sAgent Public sEncoding Public sAccept Public sData Public sCodeBase Private slresolveTimeout,slconnectTimeout,slsendTimeout,slreceiveTimeout ' ============================================ ' 类模块初始化 ' ============================================ Private Sub Class_Initialize() oForm = "" Set oXml = Server.CreateObject("MSXML2.ServerXMLHTTP") set Ados = Server.CreateObject("Adodb.Stream") slresolveTimeout = 20000 ' 解析DNS名字的超时时间,20秒 slconnectTimeout = 20000 ' 建立Winsock连接的超时时间,20秒 slsendTimeout = 30000 ' 发送数据的超时时间,30秒 slreceiveTimeout = 30000 ' 接收response的超时时间,30秒 End Sub ' ============================================ ' 返回版本信息 ' ============================================ Public Property Get Version Version = "飞扬asphttp类1.0.0" End Property ' ============================================ ' 解析DNS名字的超时时间 ' ============================================ Public Property Let lresolveTimeout(LngSize) If IsNumeric(LngSize) Then slresolveTimeout = Clng(LngSize) End If End Property ' ============================================ ' 建立Winsock连接的超时时间 ' ============================================ Public Property Let lconnectTimeout(LngSize) If IsNumeric(LngSize) Then slconnectTimeout = Clng(LngSize) End If End Property ' ============================================ ' 发送数据的超时时间 ' ============================================ Public Property Let lsendTimeout(LngSize) If IsNumeric(LngSize) Then slsendTimeout = Clng(LngSize) End If End Property ' ============================================ ' 接收response的超时时间 ' ============================================ Public Property Let lreceiveTimeout(LngSize) If IsNumeric(LngSize) Then slreceiveTimeout = Clng(LngSize) End If End Property ' ============================================ ' Method ' ============================================ Public Property Let Method(strMethod) sMethod = strMethod End Property ' ============================================ ' 发送url ' ============================================ Public Property Let Url(strUrl) sUrl = strUrl End Property ' ============================================ ' Data ' ============================================ Public Property Let Data(strData) sData = strData End Property ' ============================================ ' Referer ' ============================================ Public Property Let Referer(strReferer) sReferer = strReferer End Property ' ============================================ ' SetCookie ' ============================================ Public Property Let SetCookie(strCookie) sSetCookie = strCookie End Property ' ============================================ ' Language ' ============================================ Public Property Let Language(strLanguage) sLanguage = strLanguage End Property ' ============================================ ' CONTENT-Type ' ============================================ Public Property Let CONTENT(strCONTENT) sCONTENT = strCONTENT End Property ' ============================================ ' User-Agent ' ============================================ Public Property Let Agent(strAgent) sAgent = strAgent End Property ' ============================================ ' Accept-Encoding ' ============================================ Public Property Let Encoding(strEncoding) sEncoding = strEncoding End Property ' ============================================ ' Accept ' ============================================ Public Property Let Accept(strAccept) sAccept = strAccept End Property ' ============================================ ' CodeBase ' ============================================ Public Property Let CodeBase(strCodeBase) sCodeBase = strCodeBase End Property ' ============================================ ' 建立数据传送对向! ' ============================================ Public Function AddItem(Key, Value) On Error Resume Next Dim TempStr If oForm = "" Then oForm = Key + "=" + Server.URLEncode(Value) Else oForm = oForm + "&" + Key + "=" + Server.URLEncode(Value) End If End Function ' ============================================ ' 发送数据并取回远程数据 ' ============================================ Public Function HttpGet() Dim sReturn With oXml .setTimeouts slresolveTimeout,slconnectTimeout,slsendTimeout,slreceiveTimeout .Open sMethod,sUrl,False If sSetCookie<>“” Then
.setRequestHeader “Cookie”, sSetCookie '设定Cookie
End If
If sReferer<>“” Then
.setRequestHeader “Referer”, sReferer '设定页面来源
Else
.setRequestHeader “Referer”, sUrl
End If
If sLanguage<>“” Then
.setRequestHeader “Accept-Language”, sLanguage '设定语言
End If
.setRequestHeader “Content-Length”,Len(sData) '设定数据长度
If sCONTENT<>“” Then
.setRequestHeader “CONTENT-Type”,sCONTENT '设定接受数据类型
End If
If sAgent<>“” Then
.setRequestHeader “User-Agent”, sAgent '设定浏览器
End If
If sEncoding<>“” Then
.setRequestHeader “Accept-Encoding”, sEncoding '设定gzip压缩
End If
If sAccept<>“” Then
.setRequestHeader “Accept”, sAccept '文档类型
End If
Response.Write sData
.Send sData '发送数据
While .readyState <> 4
.waitForResponse 1000
Wend
strHeaders = .getAllResponseHeaders()
If sCodeBase<>“” Then
sReturn = bytes2BSTR(.responseBody)
Else
sReturn = .responseBody
End If
End With
HttpGet = sReturn
End Function
' ============================================
' 处理二进制数据
' ============================================
Private Function bytes2BSTR(vIn)
strReturn = “”
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn,i+1,1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) i = i + 1 End If Next bytes2BSTR = strReturn End Function ' ============================================ ' 类模块注销 ' ============================================ Private Sub Class_Terminate oForm = "" Set oXml = Nothing Set Ados = Nothing End Sub End Class %>
googleCH.asp
<% Const GOOGLE_MAGIC = &HE6359A60 Function sl(ByVal x, ByVal n) If n = 0 Then sl = x Else Dim k k = CLng(2 ^ (32 - n - 1)) Dim d d = x And (k - 1) Dim c c = d * CLng(2 ^ n) If x And k Then c = c or &H80000000 End If sl = c End If End Function '//from www.aspxuexi.com Function sr(ByVal x, ByVal n) If n = 0 Then sr = x Else Dim y y = x And &H7FFFFFFF Dim z If n = 32 - 1 Then z = 0 Else z = y \ CLng(2 ^ n) End If If y <> x Then
z = z or CLng(2 ^ (32 – n – 1))
End If
sr = z
End If
End Function
Function zeroFill(ByVal a, ByVal b)
Dim x
If (&H80000000 And a) Then
x = sr(a, 1)
x = x And (Not &H80000000)
x = x or &H40000000
x = sr(x, b – 1)
Else
x = sr(a, b)
End If
zeroFill = x
End Function
Private Function uadd(ByVal L1, ByVal L2)
Dim L11, L12, L21, L22, L31, L32
L11 = L1 And &HFFFFFF
L12 = (L1 And &H7F000000) \ &H1000000
If L1 < 0 Then L12 = L12 or &H80 L21 = L2 And &HFFFFFF L22 = (L2 And &H7F000000) \ &H1000000 If L2 < 0 Then L22 = L22 or &H80 L32 = L12 + L22 L31 = L11 + L21 If (L31 And &H1000000) Then L32 = L32 + 1 uadd = (L31 And &HFFFFFF) + (L32 And &H7F) * &H1000000 If L32 And &H80 Then uadd = uadd or &H80000000 End Function Private Function usub(ByVal L1, ByVal L2) Dim L11, L12, L21, L22, L31, L32 L11 = L1 And &HFFFFFF L12 = (L1 And &H7F000000) \ &H1000000 If L1 < 0 Then L12 = L12 or &H80 L21 = L2 And &HFFFFFF L22 = (L2 And &H7F000000) \ &H1000000 If L2 < 0 Then L22 = L22 or &H80 L32 = L12 - L22 L31 = L11 - L21 If L31 < 0 Then L32 = L32 - 1 L31 = L31 + &H1000000 End If usub = L31 + (L32 And &H7F) * &H1000000 If L32 And &H80 Then usub = usub or &H80000000 End Function Function mix(ByVal ia, ByVal ib, ByVal ic) Dim a, b, c a = ia b = ib c = ic a = usub(a, b) a = usub(a, c) a = a Xor zeroFill(c, 13) b = usub(b, c) b = usub(b, a) b = b Xor sl(a, 8) c = usub(c, a) c = usub(c, b) c = c Xor zeroFill(b, 13) a = usub(a, b) a = usub(a, c) a = a Xor zeroFill(c, 12) b = usub(b, c) b = usub(b, a) b = b Xor sl(a, 16) c = usub(c, a) c = usub(c, b) c = c Xor zeroFill(b, 5) a = usub(a, b) a = usub(a, c) a = a Xor zeroFill(c, 3) b = usub(b, c) b = usub(b, a) b = b Xor sl(a, 10) c = usub(c, a) c = usub(c, b) c = c Xor zeroFill(b, 15) Dim ret(3) ret(0) = a ret(1) = b ret(2) = c mix = ret End Function Function gc(ByVal s, ByVal i) gc = Asc(Mid(s, i + 1, 1)) End Function Function GoogleCH(ByVal sUrl) Dim iLength, a, b, c, k, iLen, m iLength = Len(sUrl) a = &H9E3779B9 b = &H9E3779B9 c = GOOGLE_MAGIC k = 0 iLen = iLength Do While iLen >= 12
a = uadd(a, (uadd(gc(sUrl, k + 0), uadd(sl(gc(sUrl, k + 1), 8), uadd(sl(gc(sUrl, k + 2), 16), sl(gc(sUrl, k + 3), 24))))))
b = uadd(b, (uadd(gc(sUrl, k + 4), uadd(sl(gc(sUrl, k + 5), 8), uadd(sl(gc(sUrl, k + 6), 16), sl(gc(sUrl, k + 7), 24))))))
c = uadd(c, (uadd(gc(sUrl, k + 8), uadd(sl(gc(sUrl, k + 9), 8), uadd(sl(gc(sUrl, k + 10), 16), sl(gc(sUrl, k + 11), 24))))))
m = mix(a, b, c)
a = m(0)
b = m(1)
c = m(2)
k = k + 12
iLen = iLen – 12
Loop
c = uadd(c, iLength)
Select Case iLen ' all the case statements fall through
Case 11
c = uadd(c, sl(gc(sUrl, k + 10), 24))
c = uadd(c, sl(gc(sUrl, k + 9), 16))
c = uadd(c, sl(gc(sUrl, k + 8), 8))
b = uadd(b, sl(gc(sUrl, k + 7), 24))
b = uadd(b, sl(gc(sUrl, k + 6), 16))
b = uadd(b, sl(gc(sUrl, k + 5), 8))
b = uadd(b, gc(sUrl, k + 4))
a = uadd(a, sl(gc(sUrl, k + 3), 24))
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 10
c = uadd(c, sl(gc(sUrl, k + 9), 16))
c = uadd(c, sl(gc(sUrl, k + 8), 8))
b = uadd(b, sl(gc(sUrl, k + 7), 24))
b = uadd(b, sl(gc(sUrl, k + 6), 16))
b = uadd(b, sl(gc(sUrl, k + 5), 8))
b = uadd(b, gc(sUrl, k + 4))
a = uadd(a, sl(gc(sUrl, k + 3), 24))
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 9
c = uadd(c, sl(gc(sUrl, k + 8), 8))
b = uadd(b, sl(gc(sUrl, k + 7), 24))
b = uadd(b, sl(gc(sUrl, k + 6), 16))
b = uadd(b, sl(gc(sUrl, k + 5), 8))
b = uadd(b, gc(sUrl, k + 4))
a = uadd(a, sl(gc(sUrl, k + 3), 24))
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 8
b = uadd(b, sl(gc(sUrl, k + 7), 24))
b = uadd(b, sl(gc(sUrl, k + 6), 16))
b = uadd(b, sl(gc(sUrl, k + 5), 8))
b = uadd(b, gc(sUrl, k + 4))
a = uadd(a, sl(gc(sUrl, k + 3), 24))
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 7
b = uadd(b, sl(gc(sUrl, k + 6), 16))
b = uadd(b, sl(gc(sUrl, k + 5), 8))
b = uadd(b, gc(sUrl, k + 4))
a = uadd(a, sl(gc(sUrl, k + 3), 24))
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 6
b = uadd(b, sl(gc(sUrl, k + 5), 8))
b = uadd(b, gc(sUrl, k + 4))
a = uadd(a, sl(gc(sUrl, k + 3), 24))
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 5
b = uadd(b, gc(sUrl, k + 4))
a = uadd(a, sl(gc(sUrl, k + 3), 24))
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 4
a = uadd(a, sl(gc(sUrl, k + 3), 24))
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 3
a = uadd(a, sl(gc(sUrl, k + 2), 16))
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 2
'//form http://www.aspxuexi.com
a = uadd(a, sl(gc(sUrl, k + 1), 8))
a = uadd(a, gc(sUrl, k + 0))
Case 1
a = uadd(a, gc(sUrl, k + 0))
End Select
m = mix(a, b, c)
GoogleCH = m(2)
End Function
Function CalculateChecksum(sUrl)
CalculateChecksum = “6” & CStr(GoogleCH(“info:” & sUrl))
End Function
%>
PR.asp


<% Sub Rw(Str) Response.Write Str & vbCrLf Response.Flush End Sub Function HttpGet(lresolveTimeout,lconnectTimeout,lsendTimeout,lreceiveTimeout,Method,Url,Referer,Data,SetCookie,Language,CONTENT,Agent,Encoding,Accept,CodeBase) Set DoGet = New FlyCms_AspHttp DoGet.lresolveTimeout = lresolveTimeout DoGet.lconnectTimeout = lconnectTimeout DoGet.lsendTimeout = lsendTimeout DoGet.lreceiveTimeout = lreceiveTimeout DoGet.Method = Method DoGet.Url = Url DoGet.Referer = Referer DoGet.Data = Data DoGet.SetCookie = SetCookie DoGet.Language = Language DoGet.CONTENT = CONTENT DoGet.Agent = Agent DoGet.Encoding = Encoding DoGet.Accept = Accept DoGet.CodeBase = CodeBase HttpGet = DoGet.HttpGet() Set DoGet = Nothing End Function Function GGPR(ByVal URL) Dim strRet sURL = "http://www.google.com/search?client=navclient-auto&ch=" & CalculateChecksum(URL) & "&features=Rank&q=info:" & URL Rw "查询地址: " & sURL & " " strRet = HttpGet(10000,10000,20000,20000,"GET",sUrl,"","","","zh-cn","","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)","","*/*","gb2312") If InStr(strRet,":") Then R = Split(strRet,":") GGPR = R(2) Else GGPR = 0 End If Rw "返回结果: " & strRet & " " Rw "  PR值: " & GGPR & " " End Function iURL = Request("iURL") If iURL="" Then iURL = "http://www.aspxuexi.com" Call GGPR(iURL) %>


Google Pagerank 查询(pr查询小偷)

输入完整页面地址查选pagerank(页面pr值):

URL


赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏