//JavaScript Teil (mit leichten Änderungen übernommen von /** */ 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 cleanURL(str) { return str.replace("http://", ""); } /** */ 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) { var init = 0xE6359A60; var 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(string) { var result = new Array(); for (var i = 0; i < string.length; ++i) { result[i] = string[i].charCodeAt(0); } return result; } function GoogleNewCH(url) { var ch = "6"+GoogleCH(strord(url)); return ch; } //var url = "www.fourmilab.ch/webtools/PageRank/"; var url = 'www.example.com'; var datacenter = "toolbarqueries.google.com"; prefix = "info:"; var reqgr = prefix + url; var reqgre = prefix + cleanURL(url); var feat = ""; if (prefix == "info:") { feat = "Rank"; } var gch = GoogleNewCH(reqgre); //gch enthällt für www.example.com 6-1907410510, funktioniert mit diesem Wert und liefert einen PR von 8 //PHP Teil // *** Google PageRang 1.1.1 *** // Copyright (c) 2007 Werner Rumpeltesz // http://www.gaijin.at/ function ZeroFill($a,$b){ $z=hexdec(80000000); if($z&$a){ $a=($a>>1); $a&=(~$z); $a|=0x40000000; $a=($a>>($b-1)); }else{ $a=($a>>$b); } return $a; } define('GOOGLE_MAGIC',0xE6359A60); 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)); return array($a,$b,$c); } function GoogleCH($url,$length=null,$init=GOOGLE_MAGIC){ if(is_null($length)){ $length=sizeof($url); } $a=$b=0x9E3779B9; $c=$init; $k=0; $len=$length; 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)); $mix=Mix($a,$b,$c); $a=$mix[0];$b=$mix[1];$c=$mix[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]); } $mix=Mix($a,$b,$c); return $mix[2]; } function StringOrder($string){ for($i=0;$i