О контрольной сумме Google

12
A1
На сайте с 26.07.2007
Offline
50
1214

Люди, помогите, плз!

Расскажите, кто такая Google CheckSum и как ее посчитать?

Есть у меня скрипт, в котором она вычисляется, но за отсутствием знаний пхп, понять как она считается не могу...

Грибы и грибочки (http://rus-agaric.ru) :))
TB
На сайте с 24.01.2008
Offline
0
#1

Честно говоря не очень в курсе, но код бы посмотрел, может что и подскажу...

скинь код в личку, поразбираюсь

A1
На сайте с 26.07.2007
Offline
50
#2
TIuBo:
Честно говоря не очень в курсе, но код бы посмотрел, может что и подскажу...
скинь код в личку, поразбираюсь

Не хочет оно тебе в личку идти! Напишу тут.

Вот 2 функции:


// Функция используется при вычислении Google Checksum (см. ниже)
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);
}


// Функция, вычисляющая Google Checksum (контрольную сумму Google)
//
// Входные данные:
// $url - URL, для которого требуется определить Google Checksum
// $length - длина строки $url (по умолчанию - null, вычисляется в функции)
// $init - "волшебное" число
//
// Выходные данные:
// $mix[2] - значение Google Checksum для заданного адреса $url
//
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)
{
case 11: $c += ($url[$k + 10] << 24);
case 10: $c += ($url[$k + 9] << 16);
case 9 : $c += ($url[$k + 8] << 8);
// Первый байт $c зарезервирован для значения $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 = mix($a, $b, $c);

return $mix[2];
}

Кто б мне объяснил, что в них происходит...

А еще лучше - перевел бы на Delphi, тады я и сам пойму...

Unlock
На сайте с 01.08.2004
Offline
786
#3

Adm123, я балдею с Вас... Религиия не позволяет? http://www.google.com/search?hl=ru&q=Google+CheckSum&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=

Есть желание, - тысяча способов; нет желания, - тысяча поводов! /Петр-I/.
A1
На сайте с 26.07.2007
Offline
50
#4
Unlock:
Adm123, я балдею с Вас... Религиия не позволяет?

Ага, я как те гугеноты, которых Портос убивал только за то, что они поют псалмы по-французски...

Короче - туго у меня с английским. А в русском сегменте я не нашел... Только на php, но о нем я уже говорил...

Unlock
На сайте с 01.08.2004
Offline
786
#5

Adm123, осилите в www.translate.ru запихнуть (или может интеллекта хватит из контекста понять):

The code find's the Google PageRank of a website (normally you have to use Google Toolbar for seeing PR).

A1
На сайте с 26.07.2007
Offline
50
#6
Кодовый find's Google PageRank вебсайта (обычно Вы должны использовать Панель инструментов Google для того, чтобы видеть связь с общественностью),

Благодарю Вас, умный Вы наш!

Однако вопрос был - как посчитать checksum, а не как узнать PR с помощью тулбара!

Unlock
На сайте с 01.08.2004
Offline
786
#7

Adm123, ндя... Михи Кузьмина тут явно не хватает, чтобы диагноз поставить.

Каширин
На сайте с 03.01.2004
Offline
1031
#8

Функция подсчета контрольной суммы используется для получения данных о PageRank документа.

A1
На сайте с 26.07.2007
Offline
50
#9
Каширин:
Функция подсчета контрольной суммы используется для получения данных о PageRank документа.

Для чего она используется я знаю, но это - увы! - не облегчает задачу ее посчитать...

A1
На сайте с 26.07.2007
Offline
50
#10
Unlock:
Adm123, ндя... Михи Кузьмина тут явно не хватает, чтобы диагноз поставить.

Вы о своем диагнозе думайте, ладно?

12

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