Meen Blog - Google Pagerank Checksum Kalkulator


'cause i can use my brain every day
-->

28.06.04

Google Pagerank Checksum Kalkulator


Der folgende Codeschnipsel erlaubt es den Pagerank für eine beliebige Seite zur Laufzeit abzufragen. Dazu müsst Ihr den Rückgabewert (checksum) einfach in folgende URL einbinden:

http://www.google.com/ search?client=navclient-auto&ch=[checksum hier]&features=Rank&q=info:http://www.beispiel.de

PHP-Code:
/*
This code is released unto the public domain
*/
header("Content-Type: text/plain; charset=utf-8");
define('GOOGLE_MAGIC', 0xE6359A60);

//unsigned shift right
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;
}


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) /* all the case statements fall through */
{
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
/* the first byte of c is reserved for the length */
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]);
/* case 0: nothing left to add */
}
$mix = mix($a,$b,$c);
/*-------------------------------------------- report the result */
return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char
function strord($string) {
for($i=0;$i $result[$i] = ord($string{$i});
}
return $result;
}
// http://www.example.com/ - Checksum: 6540747202
$url = 'info:'.$_GET['url'];
print("url:\t{$_GET['url']}\n");
$ch = GoogleCH(strord($url));
printf("ch:\t6%u\n",$ch);
?>

[via mobileread.com]



[Nachtrag]
Nach Implementation und Test des Codes [Dank an Mathias] muss ich sagen, dass der obige Algo zwar funzt. Aber Google scheint schnell reagiert zu haben und hat die Checksummen geändert. Zumindest bekamen wir stets diese Meldung.

Schade! Wer mehr weiß ist eingeladen mir zu mailen [webmaster(attt)masterplan24(dottt)de] oder das Kommentarfeld nutzen.


Diese Beiträge könnten auch interessant sein

  • Pagerank 6
  • Pagerank schwankt extrem
  • Interview mit Google Chef Entwickler Hölzle
  • Google: Fun und Fakten
  • MS Google
  • Google tanzt II
  • MT für Google optimieren


  • Marius um 16:32 in [Google] | Permalink | Kommentar abgeben (0) | Diese Seite zu Mister Wong hinzufügen


     August 2011
    So Mo Di Mi Do Fr Sa
      1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30 31      

     Service
    Alle Beiträge eines Tages per E-Mail bekommen.



     Link-Tipps
    Arbeiten in Dubai
    Amazon Gutschein
    Raynair
    Linkarchiv