asp google pr查询代码

复制代码 代码如下:

  <%@LANGUAGE="JAVASCRIPT"%>

  <title>Google PR值查询 asp程序</title>

  <%

  function hexdec(str)

  {

  return parseInt(str,16);

  }

  function zeroFill(a,b)

  {

  var z = hexdec(80000000);

  if (z & a)

  {

  a = a>>1;

  a &= ~z;

  a |= 0x40000000;

  a = a>>(b-1);

  }

  else

  {

  a = a >> b;

  }

  return (a);

  }

  function mix(a,b,c)

  {

  a -= b; a -= c; a ^= (zeroFill(c,13));

  b -= c; b -= a; b ^= (a<<8);

  c -= a; c -= b; c ^= (zeroFill(b,13));

  a -= b; a -= c; a ^= (zeroFill(c,12));

  b -= c; b -= a; b ^= (a<<16);

  c -= a; c -= b; c ^= (zeroFill(b,5));

  a -= b; a -= c; a ^= (zeroFill(c,3));

  b -= c; b -= a; b ^= (a<<10);

  c -= a; c -= b; c ^= (zeroFill(b,15));

  var ret = new Array((a),(b),(c));

  return ret;

  }

  function GoogleCH(url,length)

  {

  var init = 0xE6359A60;

  if (arguments.length == 1)

  length = url.length;

  var a = 0x9E3779B9;

  var b = 0x9E3779B9;

  var c = 0xE6359A60;

  var k = 0;

  var len = length;

  var mixo = new Array();

  while(len >= 12)

  {

  a += (url[k+0] +(url[k+1]<<8) +(url[k+2]<<16) +(url[k+3]<<24));

  b += (url[k+4] +(url[k+5]<<8) +(url[k+6]<<16) +(url[k+7]<<24));

  c += (url[k+8] +(url[k+9]<<8) +(url[k+10]<<16)+(url[k+11]<<24));

  mixo = mix(a,b,c);

  a = mixo[0]; b = mixo[1]; c = mixo[2];

  k += 12;

  len -= 12;

  }

  c += length;

  switch(len)

  {

  case 11:

  c += url[k+10]<<24;

  case 10:

  c+=url[k+9]<<16;

  case 9 :

  c+=url[k+8]<<8;

  case 8 :

  b+=(url[k+7]<<24);

  case 7 :

  b+=(url[k+6]<<16);

  case 6 :

  b+=(url[k+5]<<8);

  case 5 :

  b+=(url[k+4]);

  case 4 :

  a+=(url[k+3]<<24);

  case 3 :

  a+=(url[k+2]<<16);

  case 2 :

  a+=(url[k+1]<<8);

  case 1 :

  a+=(url[k+0]);

  }

  mixo = mix(a,b,c);

  if (mixo[2] < 0)

  return (0x100000000 + mixo[2]);

  else

  return mixo[2];

  }

  function strord(s)

  {

  var re = new Array();

  for(i=0;i<s.length;i++)

  {

  re[i] = s.charCodeAt(i);

  }

  return re;

  }

  //来源于网络,www.glzy8.com

  function c32to8bit(arr32)

  {

  var arr8 = new Array();

  for(i=0;i<arr32.length;i++)

  {

  for (bitOrder=i*4;bitOrder<=i*4+3;bitOrder++)

  {

  arr8[bitOrder]=arr32[i]&255;

  arr32[i]=zeroFill(arr32[i], 8);

  }

  }

  return arr8;

  }

  function myfmod(x,y)

  {

  var i = Math.floor(x/y);

  return (x - i*y);

  }

  //来源于网络, www. pqshow .com

  function GoogleNewCh(ch)

  {

  ch = (((ch/7) << 2) | ((myfmod(ch,13))&7));

  prbuf = new Array();

  prbuf[0] = ch;

  for(i = 1; i < 20; i++) {

  prbuf[i] = prbuf[i-1]-9;

  }

  ch = GoogleCH(c32to8bit(prbuf), 80);

  return ch;

  }

  function URLencode(sStr)

  {

  return encodeURIComponent(sStr).replace(/\+/g,"%2B").replace(/\//g,"%2F");

  }

  function getGoogleHostInfo(url){

  var reqgr = "info:" + url;

  var reqgre = "info:" + URLencode(url);

  //Response.Write(reqgr+"<br>"+reqgre); 来源于网络, www.glzy8.com

  gch = GoogleCH(strord(reqgr));

  gch = "6" + GoogleNewCh(gch);

  var querystring = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=" + gch + "&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=" + reqgre;

  //Response.Write(querystring); 来源于网络,www.glzy8.com

  var objXMLHTTP, xml;

  xml = Server.CreateObject("Microsoft.XMLHTTP");

  xml.Open("GET", querystring, false);

  xml.setRequestHeader( "User-Agent", "Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)" );

  xml.send();

  return xml.responseText;

  }

  function getPageRank(temp){

  var foo = temp.match(/Rank_.*?:.*?:(\d+)/i);

  var pr = (foo) ? foo[1] : "";

  return pr;

  }

  function getDirectory(temp){

  var foo = temp.match(/FVN_.*?:.*?:(?:Top\/)?([^\s]+)/i);

  var cat = (foo) ? foo[1] : "";

  if(cat!="")cat="http://directory.google.com/Top/"+cat

  return cat;

  }

  //来源于网络,www.glzy8.com

  var site;

  site="www.baidu.com"; //输入站点名

  if(site!="undefined"){

  var google=getGoogleHostInfo(site);

  var pagerank=getPageRank(google);

  var directory=getDirectory(google);

  Response.Write("PageRank:"+pagerank+"<br>");

  Response.Write("PageRank:<img src=\"images/pr"+pagerank+".png\" alt=\"PageRank:"+pagerank+"\"><br>");

  Response.Write("Site:"+site+"<br>");

  if(directory!="")Response.Write("Site:<a href="+directory+">"+directory+"</a><br>");

  }

  %>

  将上面的代码保存为pr.asp运行即可,如果想要传参,可以将

  site="www.baidu.com"; //输入站点名

  替换为

  site=Request.QueryString("url"); //输入站点名