| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
ua3nbw Lincoln
Зарегистрирован: 23.06.2004 Сообщения: 153
|
Добавлено: Пт Июл 09, 2004 6:33 am Заголовок сообщения: Google PageRank алгоритм расчета контрольной суммы ch |
|
|
checksum in Google's Toolbar 2.0.111
The Google Checksum Calculator, by Alex Stapleton, Andy Doctorow, Vijay "Cyberax" Bhatter, and a few others.
| Код: | <?php
/*
This code is released unto the public domain
*/
header("Content-Type: text/plain; charset=utf-8");
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;
}
// [url]http://www.example.com/[/url] - Checksum: 6540747202
$url = 'info:'.$_GET['url'];
print("url:\t{$_GET['url']}\n");
$ch = GoogleCH(strord($url));
printf("ch:\t6%u\n",$ch);
?> |
Проверил. Работает. Вот опыт : http://bp.kmdc.ru/pagerank/ |
|
| Вернуться к началу |
|
 |
azh Квоттер
Зарегистрирован: 05.07.2004 Сообщения: 69
|
Добавлено: Пт Июл 09, 2004 7:42 am Заголовок сообщения: |
|
|
Rank_1:1:5 FVN_1:27:
FVN_1:27
а что такое 27 кто подскажет?
видел где то мнение, что это позиция в гуглдир проверил нда есть совпадения.... |
|
| Вернуться к началу |
|
 |
Mauser Secretary of the Treasury
Зарегистрирован: 20.06.2004 Сообщения: 2271
|
Добавлено: Пт Июл 09, 2004 2:07 pm Заголовок сообщения: |
|
|
ua3nbw, все сказали тебе сдержаное мужское спасибо. Дамы могут быть более открыты в чувствах  |
|
| Вернуться к началу |
|
 |
Interitus Lincoln
Зарегистрирован: 24.06.2004 Сообщения: 764
|
Добавлено: Пт Июл 09, 2004 3:37 pm Заголовок сообщения: |
|
|
Круто
Мы сейчас в открытом разделе, и читать все могут даже без регистрации? |
|
| Вернуться к началу |
|
 |
Drow Lincoln
Зарегистрирован: 01.07.2004 Сообщения: 1006 Откуда: Новокузнецк
|
Добавлено: Пт Июл 09, 2004 3:49 pm Заголовок сообщения: |
|
|
Сейчас это не так актуально, экспириед-гонка уже позади.. _________________ Дешевые домены за Webmoney |
|
| Вернуться к началу |
|
 |
Mauser Secretary of the Treasury
Зарегистрирован: 20.06.2004 Сообщения: 2271
|
Добавлено: Пт Июл 09, 2004 4:21 pm Заголовок сообщения: |
|
|
Interitus, не жлобись , тем более чужим |
|
| Вернуться к началу |
|
 |
ua3nbw Lincoln
Зарегистрирован: 23.06.2004 Сообщения: 153
|
Добавлено: Пт Июл 09, 2004 4:50 pm Заголовок сообщения: |
|
|
| Цитата: | | Мы сейчас в открытом разделе, и читать все могут даже без регистрации? |
Без регистрации не прочитают.
| Цитата: | | Сейчас это не так актуально, экспириед-гонка уже позади.. |
Все еще пытаются продавать этот алгоритм .
Но гугль бар, давно не обновлялся. Наверно
при следующем апгрейде, алгоритм определения ch поменяется.
Но, смысла в этом нет. Повлиять на PR, путем расчета ch, не возможно. В том же GoogleBar мы видим этот PR. Другое дело G получает информацию с Gbar. Значит G заинтересован , чтобы его бар
был установлен. как можно на большем числе компьютеров. |
|
| Вернуться к началу |
|
 |
Mauser Secretary of the Treasury
Зарегистрирован: 20.06.2004 Сообщения: 2271
|
Добавлено: Пт Июл 09, 2004 4:53 pm Заголовок сообщения: |
|
|
| ua3nbw, вот тут не прочитают. А там могли |
|
| Вернуться к началу |
|
 |
azh Квоттер
Зарегистрирован: 05.07.2004 Сообщения: 69
|
|
| Вернуться к началу |
|
 |
alexro Квоттер
Зарегистрирован: 23.06.2004 Сообщения: 116 Откуда: Москва
|
Добавлено: Пт Июл 09, 2004 8:13 pm Заголовок сообщения: Re: Google PageRank алгоритм расчета контрольной суммы ch |
|
|
Все хорошо, только нужно следить за регистом символов: http://.../Default.html и http://.../default.html - разные чексуммы, следовательно, разные урлы и разный PR. |
|
| Вернуться к началу |
|
 |
Reanimator Квоттер
Зарегистрирован: 01.07.2004 Сообщения: 125 Откуда: Yoshkar-Ola
|
|
| Вернуться к началу |
|
 |
Homo Дайм
Зарегистрирован: 22.06.2004 Сообщения: 13
|
Добавлено: Вс Ноя 14, 2004 6:52 pm Заголовок сообщения: |
|
|
| Reanimator писал(а): | | Где можно посмотреть рабочий пример, указанная ссылка битая. |
С небольшими изменениями - на http://www.linkclub.ru/pr.php
Судя по коду первоисточник тот же, но нашли мы его через hotscripts.com
И там только один автор значится. _________________ Хуже всего, когда хорошо делают то, чего вообще не нужно делать  |
|
| Вернуться к началу |
|
 |
|