парсинг pr getHash для РФ доменов у кого получилось

N
На сайте с 29.03.2010
Offline
63
527

Добрый день.

Спарсить морду получилось без проблем.

Парсю пр медведя страницу новостей http://президент.рф/новости - 6 pr.

Вот как это делает тоол бар гугля:

http://toolbarqueries.google.ru/tbr?features=Rank&sourceid=navclient-ff&client=navclient-auto-ff&googleip=O;212.188.7.30;197&iqrn=Q2oD&querytime=wN&orig=0nKzZ&swwk=428&ch=8dae8a6b6&q=info:http%3A%2F%2Fxn--d1abbgf6aiiy.xn--p1ai%2F%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BE%25D1%2581%25D1%2582%25D0%25B8

if(preg_match("#[а-я]#i", $url))

{
if(!$url1=$web->Url($url, 1, -1, -1, 1)) exit('0');
require('../idna_convert.class.php');
$idn=new idna_convert();
$url1=$idn->encode(iconv("CP1251", "UTF-8", $url1));
$url2=preg_replace("#^(http(s|)://).{0,}/(.{0,})#Ui", "$2", $url);
$url=iconv("CP1251", "UTF-8", $url1.urlencode(iconv("CP1251", "UTF-8", $url2)));
unset($idn);
}

$url="http://toolbarqueries.google.com/search?sourceid=navclient-ff&features=Rank&client=navclient-auto-ff&ch=8".getHash($url)."&q=info:".urlencode($url);

как получить это проклятый хэш? уже как не пытался и с кодировкой игрался и с url encode|decode.

Правильный хэш-код "8dae8a6b6" тот который у меня получаеться "8e1c6b0fa" ...

Ф-ции для получения кэша

function getHash($value)

{
$hashSeed = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE.Yes, I'm talking to you, scammer.";
$intValue = 16909125;
for($i = 0; $i < strlen($value); $i++ )
{
$intValue ^= ord($hashSeed[$i % strlen($hashSeed)]) ^
ord($value[$i]);
$intValue = getShift($intValue, 23) | $intValue << 9;
}
return str_replace(' ', '',getU32($intValue));
}
function toHex8($num)
{
$vector = '0123456789abcdef';
return $vector[($num % 256) / 16] . $vector[$num % 16];
}
function getU32($num)
{
return toHex8(getShift($num, 24)) . toHex8(getShift($num, 16) & 255).
toHex8(getShift($num, 8) & 255) . toHex8($num & 255);
}
function getShift($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;
}

Помогите пожалуйста, уже пальцы болят проверять все возможные варианты.

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