PDA

View Full Version : کد نمایش پیج رنک گوگل



ERRORS
پنج شنبه 16 آذر 1391, 22:44 عصر
سلام
کد زیر برای گرفتن پیج رنک گوگل هست ولی یجا مشکل داره ودرست کار نمیکنه:اشتباه:
اگه دوستان میدونند مشکلش چیه ممنون میشم راهنمایی کنند


<?php
define('GOOGLE_MAGIC',0xE6359A60);
class kPageRank
{
var $pr;
var $timeout;
var $hosts = array('www.google.com','toolbarqueries.google.com' );
function kPageRank($path_images,$url_images,$hosts = 0,$timeout = 5)
{
$this->path_images = $path_images;
$this->url_images = $url_images;
$this->timeout = $timeout;
if(!empty($hosts))
{
$this->hosts = $hosts;
}
return true;
}
function getImage($pr = '0',$style)
{
$imagefile = $this->path_images .$style .'/pr'.$pr .'.gif';
$im = @imagecreatefromgif($imagefile);
if($im)
{
return $im;
}
else
{
return false;
}
}
function getImages($style)
{
$styles = $this->getStyles();
if(in_array($style,$styles))
{
for($i=0;$i<=10;$i++)
{
$images[$i] = $this->url_images .$style .'/pr'.$i .'.gif';
}
return $images;
}
else
{
return false;
}
}
function getStyles()
{
if ($handle = opendir($this->path_images))
{
while (false !== ($file = readdir($handle)))
{
if((is_dir($this->path_images .$file)) &&($file !== '..') &&($file !== '.'))
{
$styles[] = $file;
}
}
closedir($handle);
}
return $styles;
}
function getPageRank($url,$host = 'toolbarqueries.google.com')
{
$fp = @fsockopen($host,80,$errno,$errstr,$this->timeout);
if($fp)
{
$hash = $this->getHash($url);
$ch = $this->getCh($hash);
$out = "GET /search?client=navclient-auto&ch=".$ch ."&features=Rank&q=info:".$url ." HTTP/1.1\r\n";
$out .= "Host: ".$host ."\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)
{
$pagerank = intval(substr($data,$pos +9));
return $pagerank;
}
}
fclose($fp);
}
else
{
$this->errors[] = $errstr .' ('.$errno .')';
return false;
}
}
function strToInt($string,$check,$gmagic)
{
$integer32 = 4294967296;
$length = strlen($string);
for ($i = 0;$i <$length;$i++)
{
$check *= $gmagic;
if ($check >= $integer32)
{
$check = ($check -$integer32 * (int) ($check / $integer32));
$check = ($check <-2147483648) ?($check +$integer32) : $check;
}
$check += ord($string{$i});
}
return $check;
}
function getHash($url)
{
$check1 = $this->strToInt($url,0x1505,0x21);
$check2 = $this->strToInt($url,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 getCh($hash)
{
$checkByte = 0;
$flag = 0;
$string = sprintf('%u',$hash) ;
$length = strlen($string);
for ($i = $length -1;$i >= 0;$i --) {
$Re = $string{$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.$string;
}
function checkFake($url)
{
$user_agent = "Mozilla/4.0";
$site_url = "http://64.233.161.104/search?hl=en&lr=&q=cache:".$url;
$ch = curl_init();
curl_setopt ($ch,CURLOPT_URL,$site_url);
curl_setopt ($ch,CURLOPT_USERAGENT,$user_agent);
curl_setopt ($ch,CURLOPT_HEADER,1);
curl_setopt ($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt ($ch,CURLOPT_TIMEOUT,120);
$code = curl_exec ($ch);
curl_close($ch);
$start = strpos($code,"cache</font></a> of <a href=\"");
$end = strpos($code,"</a>.");
$length = $end -$start;
$code1 = substr($code,$start,$length);
$pattern = "did not match any documents";
if(strpos($code1,$url) != false)
{
return 1;
}
else if (eregi($pattern,$code))
{
return 2;
}
else
{
return 3;
}
}
}


?>

Unique
پنج شنبه 16 آذر 1391, 23:47 عصر
شما میخواین Pagerank سایت خودتون را نشون بدین یا میخواین یک نرم افزار درست کنید که pagerank سایت های مختلف را نشون بده ؟

ERRORS
جمعه 17 آذر 1391, 14:12 عصر
شما میخواین Pagerank سایت خودتون را نشون بدین یا میخواین یک نرم افزار درست کنید که pagerank سایت های مختلف را نشون بده ؟

ممنون این قسمتی از اسکریپت هست که مخصوص پیج رنک هست و پیج رنک هر سایتی را وارد کنیم نشون میده اما مشکل داره و میزنه n/a
یجاش یه مشکلی داره ولی خودم نتونستم بفهمم کجاش مشکل داره :عصبانی++:

Unique
جمعه 17 آذر 1391, 15:50 عصر
ببینین اگه میخواین pagerank را توی سایت خودتون نشون بدین کافیه کلمه prchecker را جستجو کنید تا کلی سایت براتون بیاد و از یک تیکه javascript استفاده کنید تا بتونین page rank را برای مخاطبین توی سایتتون بگذارین ، اما اگه میخواین افراد بیان و pagerank سایتشون را یا خودتون به قصد و نیتی pagerank سایتی را خودتون در بیارین راه داره ، من یک اسکریپت دارم شبیه کد شماست ولی فرق داره :


define('GOOGLE_MAGIC', 0xE6359A60);

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){
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($url){
$pagerank = -1;
$ch = "6"._GoogleCH(_strord("info:" . $url));
$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
if($fp){
$out = "GET /search?client=navclient-auto&ch=" . $ch . "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n";
$out .= "Host: www.google.com\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;
}

این کار کار میکنه ولی مقدار 1- را بر میگردونه ! مشکل هم از کد نیست در واقع خود google داره مانع از دریافت اطلاعات از ip شما میشه ! من فکر کنم google فقط به موارد خاصی این دسترسی را میده و من تا حالا روی چند تا ip چک کردم و نشده ! روی Ip های ایران که اصلا.

شما فکر کنین هر کسی بخواد همچین سرویسی راه بندازه اونوقت الکی سرور های google مشغول میشه و خودش یک راه هست برای سوء استفاده هایی ! پس نمیخواد دنبالش باشین ک پعید میدونم بدون مکاتبه با google به جایی برسین.