как определить Google PR с помощью запросов Гугля

Эртэд
На сайте с 18.01.2006
Offline
155
881

Всем привет.

Раньше в Позе мы использовали для определения Google PR

следующий запрос, причем не работает не зависимо от используемого ip.

если вы перейдете по ссылке - то увидите, что запрос к определению pr блокируется.

Однако, он иногда и работает.

Кто и как определяет Google pr? Или может кто-то подскажет как узнать откуда берет значение гугль тулбара?

Спасибо.

Дарите домашнюю одежду (http://www.pijama.ru/) | Seo бложок (http://www.siteprojects.ru/blog/) | Я тоже папа (http://www.crazypapa.ru/)!
M
На сайте с 27.10.2006
Offline
111
#1
Эртэд:
может кто-то подскажет как узнать откуда берет значение гугль тулбара?

Запрос правильный, но проблема в параметре ch=. Он разный у разных URL. В файле sq_lib.js плагина SeoQuake есть функции javascript для его вычисления.

Бесплатное хранилище данных (http://bit.ly/gJYy9Z) (5GB) с синхронизацией. По ссылке — бонус 500MB.
skAmZ
На сайте с 04.09.2009
Offline
122
#2


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 {
$str='/search?client=navclient-auto&ch='.CheckHash(HashURL($url)).'&ie=UTF-8&oe=UTF-8&features=Rank&q=info:'.$url.'&num=100&filter=0';
$out = "GET ".$str." 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);

$pagerank=-1;
while (!feof($fp)) {
$data = fgets($fp, 128);
$pos = strpos($data, "Rank_");
if($pos === false){} else{
$pagerank = substr($data, $pos + 9);

}
}
fclose($fp);

}
return trim($pagerank);
}

Ваш пример

Z-Style
На сайте с 18.03.2010
Offline
185
#3

почему пример по ссылке работает, а если в адресной строке изменить сайт, то нет (403 Forbidden) ?

M
На сайте с 27.10.2006
Offline
111
#4
Z-Style:
почему пример по ссылке работает, а если в адресной строке изменить сайт, то нет (403 Forbidden) ?

Читайте внимательнее ветку, меньше вопросов возникнет.

Z-Style
На сайте с 18.03.2010
Offline
185
#5

Благодарю, действительно не внимательно прочитал ветку.

Эртэд
На сайте с 18.01.2006
Offline
155
#6

победили. Полдня убили на переписывание javascript в php.

интересно было узнать что

0x100000000 + -215468795

в пхп будет как

4294967296 + -215468795

0x100000000 оно равно - 16 в степени 8

и пр.

Если кому нужно будет - welcome в личку/асю.

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