Google page rank script

I have the next page rank script:

It worked fine, but after a while i get:

<html> <head> <title>403 Forbidden</title> <style> body {font-family: Arial, sans-serif;}</style></head><body bgcolor="#ffffff" text="#000000" link="#0000cc" vlink="#551a8b" alink="#ff0000"> <table cellpadding="0" cellspacing="0" border="0"><tr><td><b><font face=times color=#0039b6 size=10>G</font><font face=times color=#c41200 size=10>o</font><font face=times color=#f3c518 size=10>o</font><font face=times color=#0039b6 size=10>g</font><font face=times color=#30a72f size=10>l</font><font face=times color=#c41200 size=10>e</font></b></td><td valign=middle width="100%" style="padding-left: 10px"><table bgcolor="#e5ecf9" width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top: 1px solid #3366cc"><tr><td><font size="+1">&nbsp;<b>Error</b></font></td><td align="right" nowrap><font size="-1">&nbsp;</font></td></tr></table></td></tr></table><blockquote><h1>We're sorry...</h1><p>... but your query looks similar to automated requests from a computer virus or spyware application.  To protect our users, we can't process your request right now.</p> <p>We'll restore your access as quickly as possible, so try again soon. In the meantime, if you suspect that your computer or network has been infected, you might want to run a <a href="http://www.download.com/Antivirus/3150-2239-0.html"> virus checker</a> or <a href="http://www.download.com/sort/3150-8022-0-1-4.html">spyware remover</a> to make sure that your systems are free of viruses and other spurious software.</p><p>We apologize for the inconvenience, and hope we'll see you again on Google. </blockquote><br><table width=100% cellpadding=0 cellspacing=0><tr><td bgcolor=#3366cc><img alt="" width=1 height=3></td></tr></table></body></html>


<?php
/******************
 * PageRankXor32 class created by MagicBeanDip
 * PageRank class was created by others
 * Look for updates at http://v1.magicbeandip.com/mbd-file/PageRankReport.php
 * This code is released into the Public Domain
 *
 * Sample use:
 * include('PageRankXor32.php');
 * $oPR=new PageRankXor32();
 * echo $oPR->getRank('http://www.amazon.com');
 *
 ******************/
 
 
function isUrlValid($Url) {
        return (strpos(strtolower($Url),'http://')===0);
   }
 
function pageRankImage($Url)
{
   if (isUrlValid($Url))
   {
    $oPR=new PageRankXor32();
    $PageRank=$oPR->getRank($Url);
   }
   else
   {
   $PageRank="";
   }
 
   if($PageRank>=0  && $PageRank!="")
   {
   $prImage = "/images/pr/pr" . $PageRank . ".gif";
   }
   else if($PageRank == -1)
   {
   $prImage = "/images/pr/blank.gif";
   }
   else
   {
   $prImage = "/images/pr/blank.gif";
   }
return $PageRank;
}
 
define('GOOGLE_MAGIC', 0x00000000E6359A60);
 
// Use this class if your server is having problems with bitwise operations
class PageRankXor32 extends PageRank {
        function xor32($a, $b) {
                return $this->int32($a) ^ $this->int32($b);
        }
        //return least significant 32 bits
        //works by telling unserialize to create an integer even though we provide a double value
        function int32($x) {
                return unserialize("i:$x;");
                //return intval($x); // This line doesn't work on all servers.
        }
 
        function mix($a,$b,$c) {
                $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,13));
                $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<8);
                $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,13));
                $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,12));
                $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<16);
                $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,5));
                $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,3));
                $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<10);
                $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,15));
                return array($a,$b,$c);
        }
}
 
//This class should work on most servers
class PageRank {
        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 ^= ($this->zeroFill($c,13));
                $b -= $c; $b -= $a; $b ^= ($a<<8);
                $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,13));
                $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,12));
                $b -= $c; $b -= $a; $b ^= ($a<<16);
                $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,5));
                $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,3));
                $b -= $c; $b -= $a; $b ^= ($a<<10);
                $c -= $a; $c -= $b; $c ^= ($this->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 = $this->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);
                        /* 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]);
                }
                $mix = $this->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;
                }
 
        //returns -1 if no page rank was found
        function getRank($url){
                $ch = "6".$this->GoogleCH($this->strord("info:" . $url));
                
                $pagerank=-1;
                $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);
                        while (!feof($fp)) {
                                $data = fgets($fp, 128);
                               
                                $pos = strpos($data, "Rank_");
                                if($pos === false){
                                }else{
                                $pagerank = trim(substr($data, $pos + 9));
                                }
                        }
                        fclose($fp);
                }
                return $pagerank;
        }
}
?>

Open in new window

rares_dumitrescuAsked:
Who is Participating?
 
hieloConnect With a Mentor Commented:
OK. Then the problem is that Google limits the number of requests for a given time period. They are the ones tracking how many requests you make, say within a hour, and if you exceed that limit then they give you that error instead. This is not a programmatic problem. It is a service denial by Google. You can't get around this. I don't know if you have some contract with them. If you do, maybe they will be willing to "increase" the number of queries/requests per ?hour? when the request comes from your site.
0
 
hieloCommented:
So, what's your question. From what you posted, it seems the remote system is tracking how much request you make on a given period of time and blocks you after you exceed that limit. This is something you would need to address with the resource provider.
0
 
rares_dumitrescuAuthor Commented:
This message i get from google
0
All Courses

From novice to tech pro — start learning today.