View Single Post
Old 10-26-2006, 11:37 PM  
borked
Totally Borked
 
borked's Avatar
 
Industry Role:
Join Date: Feb 2005
Posts: 6,284
A php function for ya:

Code:
header("Content-Type: text/plain; charset=utf-8"); 

define('GOOGLE_MAGIC', 0xE6359A60); 


//unsigned shift right 

function zeroFill($a, $b) 

{ 
    $z = hexdec(80000000);
    //echo $z;

        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); 

    //echo $mix[0];

    /*-------------------------------------------- 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<strlen($string);$i++) { 
        $result[$i] = ord($string{$i}); 
    } 
    return $result; 

} 
// http://www.example.com/ - Checksum: 6540747202 

$url = $_GET['url']; 
//print("url:\t{$_GET['url']}\n"); 

$ch = "6" . GoogleCH(strord("info:" . $url)); 


$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
   $out = "GET /search?client=navclient-auto&ch=". $ch .  "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n";
   $out .= "Host: www.google.com\r\n";
   $out .= "Connection: Close\r\n\r\n";

   fwrite($fp, $out);
   
   //$pagerank = substr(fgets($fp, 128), 4);
   //echo $pagerank;
   while (!feof($fp)) {
	$data = fgets($fp, 128);
	$pos = strpos($data, "Rank_");
	if($pos === false){} else{
		$pagerank = substr($data, $pos + 9);
		echo $pagerank;
	}
   }
   fclose($fp);
}
__________________

For coding work - hit me up on andy // borkedcoder // com
(consider figuring out the email as test #1)



All models are wrong, but some are useful. George E.P. Box. p202
borked is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote