Skocz do zawartości

jak sprawdzić page rank?


piotreek

Rekomendowane odpowiedzi

<?php
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;
}

function getrank($url) {
$url = 'info:'.$url;
$ch = GoogleCH(strord($url));
$file = "https://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url";
$data = file($file);
$rankarray = explode (':', $data[2]);
$rank = $rankarray[2];
return $rank;
}

//wywołanie:
$pagerank=getrank("https://adres/");
echo $pagerank;
?>

To jest oczywiście szkielet można dodać jeszcze wpisywanie adresu

"https://adres/"

tutaj można podziałać.

niezaleznosc-finansowa.pl - czasami coś napiszę

Hippos - Katalog stron PREMIUM

Odnośnik do komentarza
Udostępnij na innych stronach

dzieki za szybką odpowiedź, zmieniłem sobie 2 ostanie linijki na:

$pagerank=getrank("https://seksanonse.info/");
if ($pagerank != 0) mail('piotreek@buziaczek.pl', 'pr seksanonse', 'Pagerank strony SeksAnonse wynosi: '.$pagerank);

i wrzuciłem do crona :puknijsie:

foot.gif

Programista PHP / sql www.grzelka.info

Odnośnik do komentarza
Udostępnij na innych stronach

a do sprawdzenia liczby zaindeksowanych podstron danego site oraz sprawdzena liczby backlinków ktoś coś ma ;) ?

Kup sobie nieruchomości Kraków albo apartamenty Zakopane. Obejrzyj też fotoblog Grzegorza Ziemiańskiego Nowa Huta na deser

Odnośnik do komentarza
Udostępnij na innych stronach

I po co zapychać skrzynke email codziennie informacją o tym samym PR ?
Może kolega czuje się niedowartośiwany tym że do tej pory dostawał mało e-mail. Bedzie bardzo zadowolony z nowych widomości, a przecie można zawsze kasować strare e-mail

niezaleznosc-finansowa.pl - czasami coś napiszę

Hippos - Katalog stron PREMIUM

Odnośnik do komentarza
Udostępnij na innych stronach

a skąd pobierasz dane? parsujesz stronę z wynikami google czy jakiś inny pomysł ?

możęsz się ewentuanie podzielić kodem ;)

Kup sobie nieruchomości Kraków albo apartamenty Zakopane. Obejrzyj też fotoblog Grzegorza Ziemiańskiego Nowa Huta na deser

Odnośnik do komentarza
Udostępnij na innych stronach

Kod narazie jest jeszcze w fazie testów (teraz mam brak serwer problem z firmą yay.pl) narazie tylko sprawdza ilość zindexowanych podstron w google yahoo i Alltheweb

niezaleznosc-finansowa.pl - czasami coś napiszę

Hippos - Katalog stron PREMIUM

Odnośnik do komentarza
Udostępnij na innych stronach

i wrzuciłem do crona

A po co ?

Przecież update PR jest jak dobrze pójdzie co 3 miesiące. I po co zapychać skrzynke email codziennie informacją o tym samym PR ?

Pozdrawiam

84198[/snapback]

maila dostane tylko wtedy gdy pr sie zmieni

w cronie niepodawalem maila, w skrypcie jest cos takiego:

if ($pr != 0) mail()

maile bede dostawal codziennie po zmianie pr, ale wtedy usune skrypt z crona

foot.gif

Programista PHP / sql www.grzelka.info

Odnośnik do komentarza
Udostępnij na innych stronach

Tak dla ciekawostki - warto uważać z automatycznymi zapytaniami do Googli. Kiedyś postawiłem sobie na jednym serwerze skrypt, który automatycznie sprawdzał pozycję moich stron w Google.pl - około 10 zapytań dziennie. Po jakimś tygodniu zablokowali dostęp do wyszukiwania dla tego adresu IP (a konkretniej - aby dostać się do wyników trzeba było wpisać kod z obrazka). Chyba wprowadzili taką ochronę przed automatycznymi zapytaniami po falach wirusów korzystających z ich wyszukiwarki (coś bodajże rok temu było o tym głośno).

Uczysz się języka angielskiego? Masz kłopoty z nauką słówek? Sprawdź nową stronę dzięki której nauka angielskiego przestanie sprawiać Ci problemy. Ucz się angielskiego słownictwa, wymowy i gramatyki.

Odnośnik do komentarza
Udostępnij na innych stronach

Po jakimś tygodniu zablokowali dostęp do wyszukiwania dla tego adresu IP (a konkretniej - aby dostać się do wyników trzeba było wpisać kod z obrazka).

Trzeba było łączyc się przez proxy :rotfl:

niezaleznosc-finansowa.pl - czasami coś napiszę

Hippos - Katalog stron PREMIUM

Odnośnik do komentarza
Udostępnij na innych stronach

Trzeba było łączyc się przez proxy :rotfl:

87582[/snapback]

W sumie myślę że odpowiednie nagłówki (takie jak wysyła przeglądarka) załatwiłyby sprawę. No i ewentualnie jakieś większe odstępy czasowe między poszczególnymi zapytaniami.

A bana dość szybko zdjęli - myślę że jest czasowo nakładany. Zresztą z serwera to mało kto googluje poza skryptami :zeby:

Uczysz się języka angielskiego? Masz kłopoty z nauką słówek? Sprawdź nową stronę dzięki której nauka angielskiego przestanie sprawiać Ci problemy. Ucz się angielskiego słownictwa, wymowy i gramatyki.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...

Źle Ci obliczyło CHSUM, spróbuj tego kodu:

<?php 
define('GOOGLE_MAGIC', 0xE6359A60); 
class pageRank {
// PHP Google PageRank Calculator Script 
// -------------------------- April 2005 
// Contact author: pagerankscript@googlecommunity.com 

// for updates, visit: 
// https://www.googlecommunity.com/scripts/google-pagerank.php 

// provided by www.GoogleCommunity.com 
//  an unofficial community of Google fans 
// --------------------------------------- 

// Instructions 
//  Upload pagerank.php to your server 
//  Call it like this: https://www.example.com/pagerank.php?url=https://www.yahoo.com/ 
//   example.com is your website. yahoo.com is the website to get the PR of 
//  The code below displays the PR for $url 

/* 
This code is released unto the public domain 
*/ 
//header("Content-Type: text/plain; charset=utf-8"); 


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 toInt32(& $x){
$z = hexdec(80000000);
	$y = (int)$x;
   // on 64bit OSs if $x is double, negative ,will return -$z in $y
	  // which means 32th bit set (the sign bit)
		  if($y==-$z&&$x<-$z){
			   $y = (int)((-1)*$x);// this is the hack, make it positive before
			   $y = (-1)*$y; // switch back the sign
						 //echo "int hack <br>";
		  }
		  $x = $y;
}  

//$a -= $b; $a -= $c; $this->toInt32($a); $a = (int)($a ^ (zeroFill($c,13)));

function mix($a,$b,$c) {
 $a -= $b; $a -= $c; $this->toInt32($a); $a = (int)($a ^ ($this->zeroFill($c,13)));
$b -= $c; $b -= $a; $this->toInt32($b); $b = (int)($b ^ ($a<<8));
  $c -= $a; $c -= $b; $this->toInt32($c); $c = (int)($c ^ ($this->zeroFill($b,13)));
	$a -= $b; $a -= $c; $this->toInt32($a); $a = (int)($a ^ ($this->zeroFill($c,12)));
  $b -= $c; $b -= $a; $this->toInt32($b); $b = (int)($b ^ ($a<<16));
	$c -= $a; $c -= $b; $this->toInt32($c); $c = (int)($c ^ ($this->zeroFill($b,5)));
	  $a -= $b; $a -= $c; $this->toInt32($a); $a = (int)($a ^ ($this->zeroFill($c,3)));
		$b -= $c; $b -= $a; $this->toInt32($b); $b = (int)($b ^ ($a<<10));
	  $c -= $a; $c -= $b; $this->toInt32($c); $c = (int)($c ^ ($this->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 = $this->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 = $this->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; 
} 

function ReadPR($link)
{
 $fp = @fsockopen ("www.google.com", 80, $errno, $errstr, 2);
 //$ip = gethostbyname("www.google.com");
 //$fp = fsockopen ($ip, 80, $errno, $errstr, 30);

 if (!$fp) 
 {
#echo "$errstr ($errno)\n";
#exit(1);
 }
 else
 {
//$out = "GET $link HTTP/1.1\r\n";
$out = "GET $link HTTP/1.0\r\n";
$out .= "Host: www.google.com\r\n";
#$out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114.9-big; Windows 5.2)\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);

//while (!feof($fp)) 
//  echo fgets ($fp,128);

do{ 
   $line = @fgets($fp, 128); 
}while ($line !== "\r\n");
$data = @fread($fp,8192);   
@fclose ($fp);
return $data;
 }
}  



function getPageRank($url) 
{

 $url ='info:'.$url;
 $ch = $this->GoogleCH($this->strord($url));
 $data = @file("https://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=".urlencode($url));  
$tablica = $data[2]; #Rank_1:1:0
$tablica = substr($tablica, 9);
if($tablica == ""){$tablica = 0;}
$tablica = str_replace("\n", '', $tablica);



 return $tablica;

}


}
?>

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności