ASP查询PR值源码程序

本人已经测试能用,效果非常快

ASP/Visual Basic代码
  1. <%@LANGUAGE="JAVASCRIPT"%>   
  2. <form name="zzsky" method="get" action="">    
  3. <input type="text" name="site">   
  4. <input type="submit" name="submit" value="查询">   
  5. </form>   
  6. <%    
  7. function hexdec(str)    
  8. {    
  9. return parseInt(str,16);    
  10. }    
  11. function zeroFill(a,b)    
  12. {    
  13. var z = hexdec(80000000);    
  14. if (z & a)    
  15. {    
  16. a = a>>1;    
  17. a &= ~z;    
  18. a |= 0x40000000;    
  19. a = a>>(b-1);    
  20. }    
  21. else    
  22. {    
  23. a = a >> b;    
  24. }    
  25. return (a);    
  26. }    
  27. function mix(a,b,c)    
  28. {    
  29. a -= b; a -= c; a ^= (zeroFill(c,13));    
  30. b -= c; b -= a; b ^= (a<<8);    
  31. c -= a; c -= b; c ^= (zeroFill(b,13));    
  32. a -= b; a -= c; a ^= (zeroFill(c,12));    
  33. b -= c; b -= a; b ^= (a<<16);    
  34. c -= a; c -= b; c ^= (zeroFill(b,5));    
  35. a -= b; a -= c; a ^= (zeroFill(c,3));    
  36. b -= c; b -= a; b ^= (a<<10);    
  37. c -= a; c -= b; c ^= (zeroFill(b,15));    
  38. var ret = new Array((a),(b),(c));    
  39. return ret;    
  40. }    
  41. function GoogleCH(url,length)    
  42. {    
  43. var init = 0xE6359A60;    
  44. if (arguments.length == 1)    
  45. length = url.length;    
  46. var a = 0x9E3779B9;    
  47. var b = 0x9E3779B9;    
  48. var c = 0xE6359A60;    
  49. var k = 0;    
  50. var len = length;    
  51. var mixo = new Array();    
  52. while(len >= 12)    
  53. {    
  54. a += (url[k+0] +(url[k+1]<<8) +(url[k+2]<<16) +(url[k+3]<<24));    
  55. b += (url[k+4] +(url[k+5]<<8) +(url[k+6]<<16) +(url[k+7]<<24));    
  56. c += (url[k+8] +(url[k+9]<<8) +(url[k+10]<<16)+(url[k+11]<<24));    
  57. mixo = mix(a,b,c);    
  58. a = mixo[0]; b = mixo[1]; c = mixo[2];    
  59. k += 12;    
  60. len -= 12;    
  61. }    
  62. c += length;    
  63. switch(len)    
  64. {    
  65. case 11:    
  66. c += url[k+10]<<24;    
  67. case 10:    
  68. c+=url[k+9]<<16;    
  69. case 9 :    
  70. c+=url[k+8]<<8;    
  71. case 8 :    
  72. b+=(url[k+7]<<24);    
  73. case 7 :    
  74. b+=(url[k+6]<<16);    
  75. case 6 :    
  76. b+=(url[k+5]<<8);    
  77. case 5 :    
  78. b+=(url[k+4]);    
  79. case 4 :    
  80. a+=(url[k+3]<<24);    
  81. case 3 :    
  82. a+=(url[k+2]<<16);    
  83. case 2 :    
  84. a+=(url[k+1]<<8);    
  85. case 1 :    
  86. a+=(url[k+0]);    
  87. }    
  88. mixo = mix(a,b,c);    
  89. if (mixo[2] < 0)    
  90. return (0x100000000 + mixo[2]);    
  91. else    
  92. return mixo[2];    
  93. }    
  94. function strord(s)    
  95. {    
  96. var re = new Array();    
  97. for(i=0;i<s.length;i++)    
  98. {    
  99. re[i] = s.charCodeAt(i);    
  100. }    
  101. return re;    
  102. }    
  103. function c32to8bit(arr32)    
  104. {    
  105. var arr8 = new Array();    
  106. for(i=0;i<arr32.length;i++)    
  107. {    
  108. for (bitOrder=i*4;bitOrder<=i*4+3;bitOrder++)    
  109. {    
  110. arr8[bitOrder]=arr32[i]&255;    
  111. arr32[i]=zeroFill(arr32[i], 8);    
  112. }    
  113. }    
  114. return arr8;    
  115. }    
  116. function myfmod(x,y)    
  117. {    
  118. var i = Math.floor(x/y);    
  119. return (x - i*y);    
  120. }    
  121. function GoogleNewCh(ch)    
  122. {    
  123. ch = (((ch/7) << 2) | ((myfmod(ch,13))&7));    
  124. prbuf = new Array();    
  125. prbuf[0] = ch;    
  126. for(i = 1; i < 20; i++) {    
  127. prbuf[i] = prbuf[i-1]-9;    
  128. }    
  129. ch = GoogleCH(c32to8bit(prbuf), 80);    
  130. return ch;    
  131. }    
  132. function URLencode(sStr)    
  133. {    
  134. return encodeURIComponent(sStr).replace(/\+/g,"%2B").replace(/\//g,"%2F");    
  135. }    
  136. function getGoogleHostInfo(url){    
  137. var reqgr = "info:" + url;    
  138. var reqgre = "info:" + URLencode(url);    
  139. //Response.Write(reqgr+"<br>"+reqgre);    
  140. gch = GoogleCH(strord(reqgr));    
  141. gch = "6" + GoogleNewCh(gch);    
  142. var querystring = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=" +    
  143. gch + "&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=" + reqgre;    
  144. //Response.Write(querystring);    
  145. var objXMLHTTP, xml;    
  146. xml = Server.CreateObject("Microsoft.XMLHTTP");    
  147. xml.Open("GET", querystring, false);    
  148. xml.setRequestHeader( "User-Agent""Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)" );    
  149. xml.send();    
  150. //Response.Write(xml.responseText);    
  151. //Response.Write(xml.responseBody);    
  152. return xml.responseText;    
  153. }    
  154. function getPageRank(temp){    
  155. var foo = temp.match(/Rank_.*?:.*?:(\d+)/i);    
  156. var pr = (foo) ? foo[1] : "";    
  157. return pr;    
  158. }    
  159. function getDirectory(temp){    
  160. var foo = temp.match(/FVN_.*?:.*?:(?:Top\/)?([^\s]+)/i);    
  161. var cat = (foo) ? foo[1] : "";    
  162. if(cat!="")cat="http://directory.google.com/Top/"+cat    
  163. return cat;    
  164. }    
  165. var site;    
  166. site=Request("site");    
  167. if(site!="undefined"){    
  168. var google=getGoogleHostInfo(site);    
  169. var pagerank=getPageRank(google);    
  170. var directory=getDirectory(google);    
  171. Response.Write("PageRank值: "+pagerank+"<br>");    
  172. Response.Write("网站:"+site+"<br>");    
  173. if(directory!="")Response.Write("所在目录:<a href="+directory+">"+directory+"</a><br>");    
  174. }    
  175. %>  

 



文章来自: 网络原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 1 | 引用: 0 | 查看次数: 859
回复回复evilin[2010-04-22 07:13 PM | del]
Good
发表评论
昵 称: 注册帐号 密码: 游客直接输入昵称不需要密码
内 容:
验证码: 验证码