{"id":345,"date":"2009-01-08T10:00:52","date_gmt":"2009-01-08T02:00:52","guid":{"rendered":""},"modified":"2014-02-27T23:06:04","modified_gmt":"2014-02-27T15:06:04","slug":"google-pagerank%e6%9f%a5%e8%af%a2%e7%b3%bb%e7%bb%9fasp%e7%89%88","status":"publish","type":"post","link":"http:\/\/www.xiaoyebailong.com\/index.php\/2009\/01\/08\/345.htm","title":{"rendered":"Google PageRank\u67e5\u8be2\u7cfb\u7edf(ASP\u7248)"},"content":{"rendered":"<p>Google PageRank\u67e5\u8be2\u7cfb\u7edf\u3002\u5e26\u672c\u7a0b\u5e8f\u793a\u4f8b\u4e09\u4e2a\u9875\u9762,\u5176\u4e2d\u7684\u8fdc\u7a0b\u83b7\u53d6\u7c7b\u975e\u5e38\u4e0d\u9519.<\/p>\n<p>\u4ee3\u7801\u6f14\u793a:http:\/\/www.china-aspx.com\/pr\/pr_asp.asp<\/p>\n<p>\u4e09\u4e2a\u9875\u9762:<br \/>\nCLS_Asphttp.asp<\/p>\n<p>&lt;% <br \/>\nClass FlyCms_AspHttp <br \/>\nPublic oForm,oXml,Ados <br \/>\nPublic strHeaders <br \/>\nPublic sMethod <br \/>\nPublic sUrl <br \/>\nPublic sReferer <br \/>\nPublic sSetCookie <br \/>\nPublic sLanguage <br \/>\nPublic sCONTENT <br \/>\nPublic sAgent <br \/>\nPublic sEncoding <br \/>\nPublic sAccept <br \/>\nPublic sData <br \/>\nPublic sCodeBase <br \/>\nPrivate slresolveTimeout,slconnectTimeout,slsendTimeout,slreceiveTimeout <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u7c7b\u6a21\u5757\u521d\u59cb\u5316 <br \/>\n&#8216; ============================================ <br \/>\nPrivate Sub Class_Initialize() <br \/>\noForm = &quot;&quot; <br \/>\nSet oXml = Server.CreateObject(&quot;MSXML2.ServerXMLHTTP&quot;) <br \/>\nset Ados = Server.CreateObject(&quot;Adodb.Stream&quot;) <br \/>\nslresolveTimeout = 20000 &#8216; \u89e3\u6790DNS\u540d\u5b57\u7684\u8d85\u65f6\u65f6\u95f4,20\u79d2 <br \/>\nslconnectTimeout = 20000 &#8216; \u5efa\u7acbWinsock\u8fde\u63a5\u7684\u8d85\u65f6\u65f6\u95f4,20\u79d2 <br \/>\nslsendTimeout = 30000 &#8216; \u53d1\u9001\u6570\u636e\u7684\u8d85\u65f6\u65f6\u95f4,30\u79d2 <br \/>\nslreceiveTimeout = 30000 &#8216; \u63a5\u6536response\u7684\u8d85\u65f6\u65f6\u95f4,30\u79d2 <br \/>\nEnd Sub<\/p>\n<p>&#8216; ============================================ <br \/>\n&#8216; \u8fd4\u56de\u7248\u672c\u4fe1\u606f <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Get Version <br \/>\nVersion = &quot;\u98de\u626casphttp\u7c7b1.0.0&quot; <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u89e3\u6790DNS\u540d\u5b57\u7684\u8d85\u65f6\u65f6\u95f4 <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let lresolveTimeout(LngSize) <br \/>\nIf IsNumeric(LngSize) Then <br \/>\nslresolveTimeout = Clng(LngSize) <br \/>\nEnd If <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u5efa\u7acbWinsock\u8fde\u63a5\u7684\u8d85\u65f6\u65f6\u95f4 <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let lconnectTimeout(LngSize) <br \/>\nIf IsNumeric(LngSize) Then <br \/>\nslconnectTimeout = Clng(LngSize) <br \/>\nEnd If <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u53d1\u9001\u6570\u636e\u7684\u8d85\u65f6\u65f6\u95f4 <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let lsendTimeout(LngSize) <br \/>\nIf IsNumeric(LngSize) Then <br \/>\nslsendTimeout = Clng(LngSize) <br \/>\nEnd If <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u63a5\u6536response\u7684\u8d85\u65f6\u65f6\u95f4 <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let lreceiveTimeout(LngSize) <br \/>\nIf IsNumeric(LngSize) Then <br \/>\nslreceiveTimeout = Clng(LngSize) <br \/>\nEnd If <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; Method <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let Method(strMethod) <br \/>\nsMethod = strMethod <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u53d1\u9001url <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let Url(strUrl) <br \/>\nsUrl = strUrl <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; Data <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let Data(strData) <br \/>\nsData = strData <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; Referer <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let Referer(strReferer) <br \/>\nsReferer = strReferer <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; SetCookie <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let SetCookie(strCookie) <br \/>\nsSetCookie = strCookie <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; Language <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let Language(strLanguage) <br \/>\nsLanguage = strLanguage <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; CONTENT-Type <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let CONTENT(strCONTENT) <br \/>\nsCONTENT = strCONTENT <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; User-Agent <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let Agent(strAgent) <br \/>\nsAgent = strAgent <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; Accept-Encoding <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let Encoding(strEncoding) <br \/>\nsEncoding = strEncoding <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; Accept <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let Accept(strAccept) <br \/>\nsAccept = strAccept <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; CodeBase <br \/>\n&#8216; ============================================ <br \/>\nPublic Property Let CodeBase(strCodeBase) <br \/>\nsCodeBase = strCodeBase <br \/>\nEnd Property <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u5efa\u7acb\u6570\u636e\u4f20\u9001\u5bf9\u5411! <br \/>\n&#8216; ============================================ <br \/>\nPublic Function AddItem(Key, Value) <br \/>\nOn Error Resume Next <br \/>\nDim TempStr <br \/>\nIf oForm = &quot;&quot; Then <br \/>\noForm = Key + &quot;=&quot; + Server.URLEncode(Value) <br \/>\nElse <br \/>\noForm = oForm + &quot;&amp;&quot; + Key + &quot;=&quot; + Server.URLEncode(Value) <br \/>\nEnd If <br \/>\nEnd Function <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u53d1\u9001\u6570\u636e\u5e76\u53d6\u56de\u8fdc\u7a0b\u6570\u636e <br \/>\n&#8216; ============================================ <br \/>\nPublic Function HttpGet() <br \/>\nDim sReturn <br \/>\nWith oXml <br \/>\n.setTimeouts slresolveTimeout,slconnectTimeout,slsendTimeout,slreceiveTimeout <br \/>\n.Open sMethod,sUrl,False <br \/>\nIf sSetCookie&lt;&gt;&quot;&quot; Then <br \/>\n.setRequestHeader &quot;Cookie&quot;, sSetCookie &#8216;\u8bbe\u5b9aCookie <br \/>\nEnd If <br \/>\nIf sReferer&lt;&gt;&quot;&quot; Then <br \/>\n.setRequestHeader &quot;Referer&quot;, sReferer &#8216;\u8bbe\u5b9a\u9875\u9762\u6765\u6e90 <br \/>\nElse <br \/>\n.setRequestHeader &quot;Referer&quot;, sUrl <br \/>\nEnd If <br \/>\nIf sLanguage&lt;&gt;&quot;&quot; Then <br \/>\n.setRequestHeader &quot;Accept-Language&quot;, sLanguage &#8216;\u8bbe\u5b9a\u8bed\u8a00 <br \/>\nEnd If <br \/>\n.setRequestHeader &quot;Content-Length&quot;,Len(sData) &#8216;\u8bbe\u5b9a\u6570\u636e\u957f\u5ea6 <br \/>\nIf sCONTENT&lt;&gt;&quot;&quot; Then <br \/>\n.setRequestHeader &quot;CONTENT-Type&quot;,sCONTENT &#8216;\u8bbe\u5b9a\u63a5\u53d7\u6570\u636e\u7c7b\u578b <br \/>\nEnd If <br \/>\nIf sAgent&lt;&gt;&quot;&quot; Then <br \/>\n.setRequestHeader &quot;User-Agent&quot;, sAgent &#8216;\u8bbe\u5b9a\u6d4f\u89c8\u5668 <br \/>\nEnd If <br \/>\nIf sEncoding&lt;&gt;&quot;&quot; Then <br \/>\n.setRequestHeader &quot;Accept-Encoding&quot;, sEncoding &#8216;\u8bbe\u5b9agzip\u538b\u7f29 <br \/>\nEnd If <br \/>\nIf sAccept&lt;&gt;&quot;&quot; Then <br \/>\n.setRequestHeader &quot;Accept&quot;, sAccept &#8216;\u6587\u6863\u7c7b\u578b <br \/>\nEnd If <br \/>\nResponse.Write sData <br \/>\n.Send sData &#8216;\u53d1\u9001\u6570\u636e <br \/>\nWhile .readyState &lt;&gt; 4 <br \/>\n.waitForResponse 1000 <br \/>\nWend <br \/>\nstrHeaders = .getAllResponseHeaders() <br \/>\nIf sCodeBase&lt;&gt;&quot;&quot; Then <br \/>\nsReturn = bytes2BSTR(.responseBody) <br \/>\nElse <br \/>\nsReturn = .responseBody <br \/>\nEnd If <br \/>\nEnd With <br \/>\nHttpGet = sReturn <br \/>\nEnd Function <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u5904\u7406\u4e8c\u8fdb\u5236\u6570\u636e <br \/>\n&#8216; ============================================ <br \/>\nPrivate Function bytes2BSTR(vIn) <br \/>\nstrReturn = &quot;&quot; <br \/>\nFor i = 1 To LenB(vIn) <br \/>\nThisCharCode = AscB(MidB(vIn,i,1)) <br \/>\nIf ThisCharCode &lt; &amp;H80 Then <br \/>\nstrReturn = strReturn &amp; Chr(ThisCharCode) <br \/>\nElse <br \/>\nNextCharCode = AscB(MidB(vIn,i+1,1)) <br \/>\nstrReturn = strReturn &amp; Chr(CLng(ThisCharCode) * &amp;H100 + CInt(NextCharCode)) <br \/>\ni = i + 1 <br \/>\nEnd If <br \/>\nNext <br \/>\nbytes2BSTR = strReturn <br \/>\nEnd Function <br \/>\n&#8216; ============================================ <br \/>\n&#8216; \u7c7b\u6a21\u5757\u6ce8\u9500 <br \/>\n&#8216; ============================================ <br \/>\nPrivate Sub Class_Terminate <br \/>\noForm = &quot;&quot; <br \/>\nSet oXml = Nothing <br \/>\nSet Ados = Nothing <br \/>\nEnd Sub <br \/>\nEnd Class <br \/>\n%&gt;<\/p>\n<p>google.asp<\/p>\n<p>&lt;% <br \/>\nConst GOOGLE_MAGIC = &amp;HE6359A60<\/p>\n<p>Function sl(ByVal x, ByVal n) <br \/>\nIf n = 0 Then <br \/>\nsl = x <br \/>\nElse <br \/>\nDim k <br \/>\nk = CLng(2 ^ (32 &#8211; n &#8211; 1)) <br \/>\nDim d <br \/>\nd = x And (k &#8211; 1) <br \/>\nDim c <br \/>\nc = d * CLng(2 ^ n) <br \/>\nIf x And k Then <br \/>\nc = c Or &amp;H80000000 <br \/>\nEnd If <br \/>\nsl = c <br \/>\nEnd If <br \/>\nEnd Function<\/p>\n<p>Function sr(ByVal x, ByVal n) <br \/>\nIf n = 0 Then <br \/>\nsr = x <br \/>\nElse <br \/>\nDim y <br \/>\ny = x And &amp;H7FFFFFFF <br \/>\nDim z <br \/>\nIf n = 32 &#8211; 1 Then <br \/>\nz = 0 <br \/>\nElse <br \/>\nz = y \\ CLng(2 ^ n) <br \/>\nEnd If <br \/>\nIf y &lt;&gt; x Then <br \/>\nz = z Or CLng(2 ^ (32 &#8211; n &#8211; 1)) <br \/>\nEnd If <br \/>\nsr = z <br \/>\nEnd If <br \/>\nEnd Function<\/p>\n<p>Function zeroFill(ByVal a, ByVal b) <br \/>\nDim x <br \/>\nIf (&amp;H80000000 And a) Then <br \/>\nx = sr(a, 1) <br \/>\nx = x And (Not &amp;H80000000) <br \/>\nx = x Or &amp;H40000000 <br \/>\nx = sr(x, b &#8211; 1) <br \/>\nElse <br \/>\nx = sr(a, b) <br \/>\nEnd If <br \/>\nzeroFill = x <br \/>\nEnd Function<\/p>\n<p>Private Function uadd(ByVal L1, ByVal L2) <br \/>\nDim L11, L12, L21, L22, L31, L32 <br \/>\nL11 = L1 And &amp;HFFFFFF <br \/>\nL12 = (L1 And &amp;H7F000000) \\ &amp;H1000000 <br \/>\nIf L1 &lt; 0 Then L12 = L12 Or &amp;H80 <br \/>\nL21 = L2 And &amp;HFFFFFF <br \/>\nL22 = (L2 And &amp;H7F000000) \\ &amp;H1000000 <br \/>\nIf L2 &lt; 0 Then L22 = L22 Or &amp;H80 <br \/>\nL32 = L12 + L22 <br \/>\nL31 = L11 + L21 <br \/>\nIf (L31 And &amp;H1000000) Then L32 = L32 + 1 <br \/>\nuadd = (L31 And &amp;HFFFFFF) + (L32 And &amp;H7F) * &amp;H1000000 <br \/>\nIf L32 And &amp;H80 Then uadd = uadd Or &amp;H80000000 <br \/>\nEnd Function<\/p>\n<p>Private Function usub(ByVal L1, ByVal L2) <br \/>\nDim L11, L12, L21, L22, L31, L32 <br \/>\nL11 = L1 And &amp;HFFFFFF <br \/>\nL12 = (L1 And &amp;H7F000000) \\ &amp;H1000000 <br \/>\nIf L1 &lt; 0 Then L12 = L12 Or &amp;H80 <br \/>\nL21 = L2 And &amp;HFFFFFF <br \/>\nL22 = (L2 And &amp;H7F000000) \\ &amp;H1000000 <br \/>\nIf L2 &lt; 0 Then L22 = L22 Or &amp;H80 <br \/>\nL32 = L12 &#8211; L22 <br \/>\nL31 = L11 &#8211; L21 <br \/>\nIf L31 &lt; 0 Then <br \/>\nL32 = L32 &#8211; 1 <br \/>\nL31 = L31 + &amp;H1000000 <br \/>\nEnd If <br \/>\nusub = L31 + (L32 And &amp;H7F) * &amp;H1000000 <br \/>\nIf L32 And &amp;H80 Then usub = usub Or &amp;H80000000 <br \/>\nEnd Function<\/p>\n<p>Function mix(ByVal ia, ByVal ib, ByVal ic) <br \/>\nDim a, b, c <br \/>\na = ia <br \/>\nb = ib <br \/>\nc = ic<\/p>\n<p>a = usub(a, b) <br \/>\na = usub(a, c) <br \/>\na = a Xor zeroFill(c, 13)<\/p>\n<p>b = usub(b, c) <br \/>\nb = usub(b, a) <br \/>\nb = b Xor sl(a, 8)<\/p>\n<p>c = usub(c, a) <br \/>\nc = usub(c, b) <br \/>\nc = c Xor zeroFill(b, 13)<\/p>\n<p>a = usub(a, b) <br \/>\na = usub(a, c) <br \/>\na = a Xor zeroFill(c, 12)<\/p>\n<p>b = usub(b, c) <br \/>\nb = usub(b, a) <br \/>\nb = b Xor sl(a, 16)<\/p>\n<p>c = usub(c, a) <br \/>\nc = usub(c, b) <br \/>\nc = c Xor zeroFill(b, 5)<\/p>\n<p>a = usub(a, b) <br \/>\na = usub(a, c) <br \/>\na = a Xor zeroFill(c, 3)<\/p>\n<p>b = usub(b, c) <br \/>\nb = usub(b, a) <br \/>\nb = b Xor sl(a, 10)<\/p>\n<p>c = usub(c, a) <br \/>\nc = usub(c, b) <br \/>\nc = c Xor zeroFill(b, 15)<\/p>\n<p>Dim ret(3)<\/p>\n<p>ret(0) = a <br \/>\nret(1) = b <br \/>\nret(2) = c<\/p>\n<p>mix = ret <br \/>\nEnd Function<\/p>\n<p>Function gc(ByVal s, ByVal i) <br \/>\ngc = Asc(Mid(s, i + 1, 1)) <br \/>\nEnd Function<\/p>\n<p>Function GoogleCH(ByVal sUrl) <br \/>\nDim iLength, a, b, c, k, iLen, m <br \/>\niLength = Len(sUrl)<\/p>\n<p>a = &amp;H9E3779B9 <br \/>\nb = &amp;H9E3779B9 <br \/>\nc = GOOGLE_MAGIC <br \/>\nk = 0<\/p>\n<p>iLen = iLength <br \/>\nDo While iLen &gt;= 12 <br \/>\na = 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)))))) <br \/>\nb = 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)))))) <br \/>\nc = 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))))))<\/p>\n<p>m = mix(a, b, c)<\/p>\n<p>a = m(0) <br \/>\nb = m(1) <br \/>\nc = m(2)<\/p>\n<p>k = k + 12<\/p>\n<p>iLen = iLen &#8211; 12 <br \/>\nLoop<\/p>\n<p>c = uadd(c, iLength)<\/p>\n<p>Select Case iLen &#8216; all the case statements fall through <br \/>\nCase 11 <br \/>\nc = uadd(c, sl(gc(sUrl, k + 10), 24)) <br \/>\nc = uadd(c, sl(gc(sUrl, k + 9), 16)) <br \/>\nc = uadd(c, sl(gc(sUrl, k + 8), 8)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 7), 24)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 6), 16)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 5), 8)) <br \/>\nb = uadd(b, gc(sUrl, k + 4)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 3), 24)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 10 <br \/>\nc = uadd(c, sl(gc(sUrl, k + 9), 16)) <br \/>\nc = uadd(c, sl(gc(sUrl, k + 8), 8)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 7), 24)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 6), 16)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 5), 8)) <br \/>\nb = uadd(b, gc(sUrl, k + 4)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 3), 24)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 9 <br \/>\nc = uadd(c, sl(gc(sUrl, k + 8), 8)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 7), 24)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 6), 16)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 5), 8)) <br \/>\nb = uadd(b, gc(sUrl, k + 4)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 3), 24)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 8 <br \/>\nb = uadd(b, sl(gc(sUrl, k + 7), 24)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 6), 16)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 5), 8)) <br \/>\nb = uadd(b, gc(sUrl, k + 4)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 3), 24)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 7 <br \/>\nb = uadd(b, sl(gc(sUrl, k + 6), 16)) <br \/>\nb = uadd(b, sl(gc(sUrl, k + 5), 8)) <br \/>\nb = uadd(b, gc(sUrl, k + 4)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 3), 24)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 6 <br \/>\nb = uadd(b, sl(gc(sUrl, k + 5), 8)) <br \/>\nb = uadd(b, gc(sUrl, k + 4)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 3), 24)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 5 <br \/>\nb = uadd(b, gc(sUrl, k + 4)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 3), 24)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 4 <br \/>\na = uadd(a, sl(gc(sUrl, k + 3), 24)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 3 <br \/>\na = uadd(a, sl(gc(sUrl, k + 2), 16)) <br \/>\na = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 2<\/p>\n<p>a = uadd(a, sl(gc(sUrl, k + 1), 8)) <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nCase 1 <br \/>\na = uadd(a, gc(sUrl, k + 0)) <br \/>\nEnd Select<\/p>\n<p>m = mix(a, b, c)<\/p>\n<p>GoogleCH = m(2) <br \/>\nEnd Function<\/p>\n<p>Function CalculateChecksum(sUrl) <br \/>\nCalculateChecksum = &quot;6&quot; &amp; CStr(GoogleCH(&quot;info:&quot; &amp; sUrl)) <br \/>\nEnd Function <br \/>\n%&gt;<\/p>\n<p>pr_asp.asp<\/p>\n<p>&lt;!&#8211;#include file=&quot;google.asp&quot;&#8211;&gt; <br \/>\n&lt;!&#8211;#include file=&quot;Cls_AspHttp.asp&quot;&#8211;&gt; <br \/>\n&lt;% <br \/>\nSub Rw(Str) <br \/>\nResponse.Write Str &amp; vbCrLf <br \/>\nResponse.Flush <br \/>\nEnd Sub<\/p>\n<p>Function HttpGet(lresolveTimeout,lconnectTimeout,Method,Url,Referer,Data,SetCookie,Language,CONTENT,Agent,Encoding,Accept,CodeBase) <br \/>\nSet DoGet = New FlyCms_AspHttp <br \/>\nDoGet.lresolveTimeout = lresolveTimeout <br \/>\nDoGet.lconnectTimeout = lconnectTimeout <br \/>\nDoGet.lsendTimeout = lsendTimeout <br \/>\nDoGet.lreceiveTimeout = lreceiveTimeout <br \/>\nDoGet.Method = Method <br \/>\nDoGet.Url = Url <br \/>\nDoGet.Referer = Referer <br \/>\nDoGet.Data = Data <br \/>\nDoGet.SetCookie = SetCookie <br \/>\nDoGet.Language = Language <br \/>\nDoGet.CONTENT = CONTENT <br \/>\nDoGet.Agent = Agent <br \/>\nDoGet.Encoding = Encoding <br \/>\nDoGet.Accept = Accept <br \/>\nDoGet.CodeBase = CodeBase <br \/>\nHttpGet = DoGet.HttpGet() <br \/>\nSet DoGet = Nothing <br \/>\nEnd Function<\/p>\n<p>Function GGPR(ByVal URL) <br \/>\nDim strRet <br \/>\nsURL = &quot;<a rel=\"nofollow\" href=\"http:\/\/www.google.com\/search?client=navclient&amp;ch\">http:\/\/www.google.com\/search?client=navclient&amp;ch<\/a>=&quot; &amp; CalculateChecksum(URL) &amp; &quot;&amp;features=Rank&amp;q=info:&quot; &amp; URL <br \/>\nRw &quot;\u67e5\u8be2\u5730\u5740: &quot; &amp; sURL &amp; &quot;&lt;br \/&gt;&quot; <br \/>\nstrRet = HttpGet(10000, 20000,&quot;GET&quot;,sUrl,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;zh-cn&quot;,&quot;&quot;,&quot;Mozilla\/4.0 (compatible; MSIE 6.0; Windows NT 5.1)&quot;,&quot;&quot;,&quot;*\/*&quot;,&quot;gb2312&quot;) <br \/>\nIf InStr(strRet,&quot;:&quot;) Then <br \/>\nR = Split(strRet,&quot;:&quot;) <br \/>\nGGPR = R(2) <br \/>\nElse <br \/>\nGGPR = 0 <br \/>\nEnd If <br \/>\nRw &quot;\u8fd4\u56de\u7ed3\u679c: &quot; &amp; strRet &amp; &quot;&lt;br \/&gt;&quot; <br \/>\nRw &quot;\u3000\u3000PR\u503c: &quot; &amp; GGPR &amp; &quot;&lt;br \/&gt;&quot; <br \/>\nEnd Function<\/p>\n<p>iURL = Request(&quot;iURL&quot;) <br \/>\nIf iURL=&quot;&quot; Then iURL = &quot;<a rel=\"nofollow\" href=\"http:\/\/www.v-ns.cn\">http:\/\/www.v-ns.cn<\/a>&quot;<br \/>\nCall GGPR(iURL) <br \/>\n%&gt; <br \/>\n&lt;html&gt; <br \/>\n&lt;head&gt;<br \/>\n&lt;title&gt;Google PageRank\u67e5\u8be2<br \/>\n&lt;\/title&gt; <br \/>\n&lt;\/head&gt; <br \/>\n&lt;body&gt; <br \/>\n&lt;h1&gt;\u8f93\u5165\u5b8c\u6574\u9875\u9762\u5730\u5740\u67e5\u8be2PageRank(\u9875\u9762pr\u503c):&lt;\/h1&gt; <br \/>\n&lt;form action=&quot;&quot; method=&quot;post&quot;&gt; <br \/>\nURL &lt;input type=&quot;text&quot; name=&quot;iURL&quot; style=&quot;width:400px&quot; \/&gt;&lt;input type=&quot;submit&quot; value=&quot;Pr\u67e5\u8be2&quot; \/&gt; <br \/>\n&lt;\/form&gt; <br \/>\n&lt;\/body&gt; <br \/>\n&lt;\/html&gt;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Google PageRank\u67e5\u8be2\u7cfb\u7edf\u3002\u5e26\u672c\u7a0b\u5e8f\u793a\u4f8b\u4e09\u4e2a\u9875\u9762,\u5176\u4e2d\u7684\u8fdc\u7a0b\u83b7\u53d6\u7c7b\u975e\u5e38\u4e0d\u9519. \u4ee3\u7801\u6f14\u793a:http:\/\/www.china-aspx.com\/pr\/pr_asp.asp \u4e09\u4e2a\u9875\u9762: CLS_Asphttp.asp &lt;% Cl&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"topic":[],"class_list":["post-345","post","type-post","status-publish","format-standard","hentry","category-technology"],"_links":{"self":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/comments?post=345"}],"version-history":[{"count":1,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/345\/revisions"}],"predecessor-version":[{"id":66199,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/345\/revisions\/66199"}],"wp:attachment":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/media?parent=345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/categories?post=345"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/tags?post=345"},{"taxonomy":"topic","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/topic?post=345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}