GoFuckYourself.com - Adult Webmaster Forum

GoFuckYourself.com - Adult Webmaster Forum (https://gfy.com/index.php)
-   Fucking Around & Business Discussion (https://gfy.com/forumdisplay.php?f=26)
-   -   PHP: Google PageRank Checker (https://gfy.com/showthread.php?t=666385)

gon 10-15-2006 12:03 AM

PHP: Google PageRank Checker
 
see this

it shows an error:

Your client does not have permission to get URL /search?client=navclient-auto&ch=6-2147439921&ie=UTF-8&oe=UTF-8&features=Rank&q=info:http%3A%2F%2Fa.com from this server. (Client IP address: xxx.xxx.xxx.xxx)

do you see the same error ?

I need a php script that show the PR of a web... :helpme

thank you !

KRL 10-15-2006 12:06 AM

http://www.checkpagerank.com/

gon 10-15-2006 12:12 AM

Thank you very much KRL, it's so interesting, but I need to get PageRank in a PHP variable. Do you see the same error with this?

GrouchyAdmin 10-15-2006 12:13 AM

It's been blocked. You can't do that. People abused it, so Google killed it. You'll have to find another means.

gooddomains 10-15-2006 12:13 AM

contact google

gon 10-15-2006 12:16 AM

Thanks ! :)

LiveDose 10-15-2006 12:16 AM

Quote:

Originally Posted by KRL (Post 11078523)

Nice link.

woj 10-15-2006 12:25 AM

If you want to invest a few bucks, I'll hook you up with one, icq: 33375924

squishypimp 10-15-2006 12:27 AM

Quote:

Originally Posted by KRL (Post 11078523)

thanks, this will come in handy :)

mlove 10-15-2006 12:36 AM

Well, to directly access that url, you need to forge your user-agent reply. Also, google regularly blocks websites that automatically perform the lookups. I think those big sites that are still running actually cycle connections to google through a set of proxies. Then when one proxy gets blocked, it just removes the result, and a new set of proxies are just added into their config.

Tempest 10-15-2006 02:26 AM

Are you sure you're doing it right? i.e. the ch= is correctly calculated?

Tempest 10-15-2006 02:33 AM

Quote:

Originally Posted by Tempest (Post 11079042)
Are you sure you're doing it right? i.e. the ch= is correctly calculated?

Never mind.. you're not.. with the correct ch value the url you posted works.

ilbb 10-15-2006 02:37 AM

they changed 'Magic number' algorith few months ago...You should try this:

PHP Code:

define('GOOGLE_MAGIC'0xE6359A60);
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 
$c+=($url[$k+8]<<8);
          
/* the first byte of c is reserved for the length */
        
case $b+=($url[$k+7]<<24);
        case 
$b+=($url[$k+6]<<16);
        case 
$b+=($url[$k+5]<<8);
        case 
$b+=($url[$k+4]);
        case 
$a+=($url[$k+3]<<24);
        case 
$a+=($url[$k+2]<<16);
        case 
$a+=($url[$k+1]<<8);
        case 
$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<strlen($string);$i++) {
        
$result[$i] = ord($string{$i});
    }
    return 
$result;
}


// converts an array of 32 bit integers into an array with 8 bit values. Equivalent to (BYTE *)arr32

function c32to8bit($arr32) {
    for(
$i=0;$i<count($arr32);$i++) {
        for (
$bitOrder=$i*4;$bitOrder<=$i*4+3;$bitOrder++) {
            
$arr8[$bitOrder]=$arr32[$i]&255;
            
$arr32[$i]=zeroFill($arr32[$i], 8);
        }
    }
    return 
$arr8;
}

function 
pagerank ($urla) {

$url 'info:'.$urla;
//print("url:\t{$url}\n");
$ch GoogleCH(strord($url));
//printf("Checksum <2.0.114:\t6%u\n",$ch);

$ch=sprintf("%u"$ch);
// new since Toolbar 2.0.114

$ch = ((($ch/7) << 2) | (((int)fmod($ch,13))&7));

$prbuf = array();
$prbuf[0] = $ch;
for(
$i 1$i 20$i++) {
      
$prbuf[$i] = $prbuf[$i-1]-9;
}
$ch GoogleCH(c32to8bit($prbuf), 80);

$kodsprintf("6%u",$ch);

$gpr=pfile("http://toolbarqueries.google.com/search?client=navclient-auto&ch=".$kod."&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=info:".urlencode($urla));
$gpr=split ("\n",$gpr);
$gpr[2]=trim ($gpr[2]);
if ((
$gpr[2])=="") {return "n/a";}
$rank=split (":",$gpr[2]);
return (
trim($rank[2]));


:thumbsup

gon 10-15-2006 09:27 PM

Tempest you are right
 
Quote:

Originally Posted by Tempest (Post 11079052)
Never mind.. you're not.. with the correct ch value the url you posted works.

OK, Tempest, I believe that you are right, I've been looking for and I have found that many servers don't calculate the right value for $ch, in my local server it works fine, but when I upload to my server it crash. My economy is weak, but I can pay $15 (paypal) for who changes me the code so that works in my server, I paste the code bellow:

PHP Code:

<?php

define
('GMAG'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 
GCH($url$length=null$init=GMAG) {
    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 
$c+=($url[$k+8]<<8);
          
/* the first byte of c is reserved for the length */
        
case $b+=($url[$k+7]<<24);
        case 
$b+=($url[$k+6]<<16);
        case 
$b+=($url[$k+5]<<8);
        case 
$b+=($url[$k+4]);
        case 
$a+=($url[$k+3]<<24);
        case 
$a+=($url[$k+2]<<16);
        case 
$a+=($url[$k+1]<<8);
        case 
$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<strlen($string);$i++) {
        
$result[$i] = ord($string{$i});
    }
    return 
$result;
}

function 
getPR($_url) {
    
$url 'info:'.$_url;
    
$ch GCH(strord($url));
    
$url='info:'.urlencode($_url);

    
$pr file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");
    
$pr_str implode(""$pr);
    return 
substr($pr_str,strrpos($pr_str":")+1);
}


//echo "PageRank: ".getPR("http://www.example.com");

?>


Zorgman 10-15-2006 10:55 PM

I had a Google PR checker on www.cyberwebmasters.com but Google blocked it. Fair enough to as I was checking 5000 domains everyday for 3 weeks. lol

gon 10-17-2006 09:53 PM

The offer continues in vigor...

Tempest 10-17-2006 10:17 PM

Quote:

Originally Posted by gon (Post 11100025)
The offer continues in vigor...

Wish I had some code to give you but mine is in Perl. I doubt anyone will do what you need for $15. You might be better off looking around for other code to find one that works.

The problem is most likely related to a fundamental flaw in PHP in that it doesn't do bitwise (unsigned 32/64 bit ints) properly. There are some work arounds but you have to know where the error is occuring.

GrouchyAdmin 10-17-2006 10:26 PM

The pagerank checker in axslinks works, and it looks like an elder version of the same damn code. Works on 3 different hosts that I've tested it on - if it doesn't work for you, there's probably other problems with your server. If it does work for you, feel free to dump the cash to darksoul, because I stole it from his, and he got it from wherever. :thumbsup

Code:

<?php
/*
        Written and contributed by
        Alex Stapleton,
        Andy Doctorow,
        Tarakan,
        Bill Zeller,
        Vijay "Cyberax" Bhatter
        traB
    This code is released into the public domain
*/
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<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}


// converts an array of 32 bit integers into an array with 8 bit values. Equivalent to (BYTE *)arr32

function c32to8bit($arr32) {
    for($i=0;$i<count($arr32);$i++) {
        for ($bitOrder=$i*4;$bitOrder<=$i*4+3;$bitOrder++) {
            $arr8[$bitOrder]=$arr32[$i]&255;
            $arr32[$i]=zeroFill($arr32[$i], 8);
        }   
    }
    return $arr8;
}

function GoogleCHNew($ch){
        $ch=sprintf("%u", $ch);
        $ch = ((($ch/7) << 2) | (((int)fmod($ch,13))&7));
        $prbuf = array();
        $prbuf[0] = $ch;
        for($i = 1; $i < 20; $i++) {
      $prbuf[$i] = $prbuf[$i-1]-9;
        }
        $ch = GoogleCH(c32to8bit($prbuf), 80);
        return sprintf("%u", $ch);
}

function get_page_rank($url){
        $url = preg_replace('/\?.*$/','?',$url);
        $reqgr = "info:".$url;
    $reqgre = "info:".urlencode($url);
    $gch = GoogleCH(strord($reqgr));
    $gch = "6".GoogleCHNew($gch);
    $querystring = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=".$gch."&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=".$reqgre;
    $patern = '/^http:/';
    $patern2 = '/^http:\/\/.*google\..*\/(search|images|groups|news).*/';
    $patern3 = '/^http:\/\/localhost.*/';
    $patern4 = '/^http:\/\/(127\.|10\.|172\.16|192\.168).*/'; //local ip
    if(!preg_match($patern, $url) || preg_match($patern2, $url) ||
      preg_match($patern3, $url) || preg_match($patern4, $url)){
              return -1;
    }else{
                        return $querystring;
    }
}
?>



All times are GMT -7. The time now is 10:12 PM.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
©2000-, AI Media Network Inc123