Скрипт опредления PR

Pentium Prescott
На сайте с 23.10.2008
Offline
199
377

Добрый день. Раньше всегда пользовался этим скриптом для опредления PR

<?php


//--------------------------------
//GPL
//Xover, 2005-2007
//PHP-scripting ICQ 557827
//парсеры, сетки сайтов и каталогов под заказ.
//-------------------------------

define('GMAG', 0xE6359A60);
function nooverflow($a)
{
while ($a<-2147483648)
$a+=2147483648+2147483648;
while ($a>2147483647)
$a-=2147483648+2147483648;
return $a;
}
function zeroFill ($x, $bits)
{
if ($bits==0) return $x;
if ($bits==32) return 0;
$y = ($x & 0x7FFFFFFF) >> $bits;
if (0x80000000 & $x) {
$y |= (1<<(31-$bits));
}
return $y;
}
function mix($a,$b,$c) {
$a=(int)$a; $b=(int)$b; $c=(int)$c;
$a -= $b; $a -= $c; $a=nooverflow($a); $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b=nooverflow($b); $b ^= ($a<<8);
$c -= $a; $c -= $b; $c=nooverflow($c); $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a=nooverflow($a); $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b=nooverflow($b); $b ^= ($a<<16);
$c -= $a; $c -= $b; $c=nooverflow($c); $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a=nooverflow($a); $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b=nooverflow($b); $b ^= ($a<<10);
$c -= $a; $c -= $b; $c=nooverflow($c); $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)
{
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 strord($string)
{
for($i=0;$i<strlen($string);$i++)
{
$result[$i] = ord($string{$i});
}
return $result;
}

function getPageRank($aUrl)
{
$url = 'info:'.$aUrl;
$ch = GCH(strord($url));
$url='info:'.urlencode($aUrl);
$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);
}


?>

Все работало нормально - определялось хорошо.Однако уже где-то недели две он перестал работать - при обращении к серваку гугла выдаёт 403.

В чем может быть дело? Гугл сменил алгоритм?

дешевый VPS ( https://firstvds.ru/?from=52910 ) покупка и продажа криптовалют ( https://www.bestchange.ru/?p=1296834 )
iren K
На сайте с 28.12.2008
Offline
222
#1

раньше пользовалась этим:

PHP код:

<?php

$website = 'http://site.ru/';
//GOOGLE PR START
function StrToNum($Str, $Check, $Magic)
{
$Int32Unit = 4294967296;

$length = strlen($Str);
for ($i = 0; $i < $length; $i++) {
$Check *= $Magic;

if ($Check >= $Int32Unit) {
$Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));

$Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
}
$Check += ord($Str{$i});
}
return $Check;
}
function HashURL($String)
{
$Check1 = StrToNum($String, 0x1505, 0x21);
$Check2 = StrToNum($String, 0, 0x1003F);

$Check1 >>= 2;
$Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
$Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
$Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);

$T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 &
0xF0F );
$T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) |
($Check2 & 0xF0F0000 );

return ($T1 | $T2);
}
function CheckHash($Hashnum)
{
$CheckByte = 0;
$Flag = 0;

$HashStr = sprintf('%u', $Hashnum) ;
$length = strlen($HashStr);

for ($i = $length - 1; $i >= 0; $i --) {
$Re = $HashStr{$i};
if (1 === ($Flag % 2)) {
$Re += $Re;
$Re = (int)($Re / 10) + ($Re % 10);
}
$CheckByte += $Re;
$Flag ++;
}

$CheckByte %= 10;
if (0 !== $CheckByte) {
$CheckByte = 10 - $CheckByte;
if (1 === ($Flag % 2) ) {
if (1 === ($CheckByte % 2)) {
$CheckByte += 9;
}
$CheckByte >>= 1;
}
}

return '7'.$CheckByte.$HashStr;
}
function getpagerank($url) {

$fp = fsockopen("toolbarqueries.google.com", 80, $errno, $errstr, 30);
if (!$fp) {

} else {
$out = "GET /search?client=navclient-auto&ch=".CheckHash(HashURL($url))
."&features=Rank&q=info:".$url."&num=100&filter=0 HTTP/1.1\r\n";
$out .= "Host: toolbarqueries.google.com\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big;
Windows XP 5.1)\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 = substr($data, $pos + 9);

}
}
fclose($fp);

}
return $pagerank;
}
$pr=getpagerank($website);
////GOOGLE PR END
?>

проверила, вроде дает правильное значение..

c уважением Iren
Pentium Prescott
На сайте с 23.10.2008
Offline
199
#2

iren K, Спасибо ) Работает!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий