Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-08-2007, 19:01   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 64
google pr

Hallo,

hab schon einiges dazu hier im Forum gefunden aber nichts was wirklich funktioniert hat.

Also nun meine Frage:
Ist es möglich per PHP den Google Pagerank einer Webseite auszulesen???
fakeX ist offline   Mit Zitat antworten
Alt 17-08-2007, 19:15   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
http://www.google.com/webmasters/
Leider nicht als Wert, aber immerhin grafisch
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 17-08-2007, 19:47   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 64
Hallo,

erstmals danke für die Info, aber anscheinend bin ich zu blöd. Sollte doch in den Webmaster Tools zu finden sein oder???
fakeX ist offline   Mit Zitat antworten
Alt 17-08-2007, 20:18   #4 (permalink)
Mathematik-Freak
 
Benutzerbild von NoMoKeTo
 
Registriert seit: Mar 2006
Ort: NRW
Beiträge: 44
Wink

Es gibt dafür eine möglichkeit, das ganze mit PHP herauszufinden - ein skript, dass so im umlauf ist - keine Ahnung, woher es kommt:
PHP-Code:
<?php

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

define('GOOGLE_MAGIC',0xE6359A60);

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 
StringOrder($string){
  for(
$i=0;$i<strlen($string);$i++){$result[$i]=ord($string{$i});}
  return 
$result;
}



$server="www.google.com";

/* Alternative Server
$server="toolbarqueries.google.com";
$server="64.233.161.99";
$server="64.233.161.104";
$server="66.102.7.99";
$server="66.102.7.104";
$server="216.239.59.99";
$server="216.239.59.104";
$server="216.239.37.104";
$server="216.239.39.99";
$server="216.239.39.104";
$server="66.102.11.99";
$server="66.102.11.104";
$server="216.239.57.99";
$server="216.239.57.104";
$server="66.102.9.99";
$server="66.102.9.104";
$server="216.239.53.99";
$server="216.239.53.104";
*/
    
$url="info:http://www.deine-url.de";
    
$ch=trim(str_replace("-","",sprintf("6%u\n",GoogleCH(StringOrder($url)))));
        
$res="http://$server/search?client=navclient-auto&ch=$ch&features=Rank&q=$url";
$data=@fopen("$res",r);
if(
$data){
    while(
$line fgets($data,1024)) {
        if(
substr($line,0,7)=="Rank_1:"){$rankline $line;}
    }
    
fclose($data);
    
$pagerank trim(substr($rankline,9,2));
    echo (
'Pagerank meiner Seite: <strong>'.$pagerank.'</strong>');
}
?>
Musst nur noch "http://www.deine-url.de" durch die gewünschte URL einsetzen ;-) - Bei mir klappt das einwandfrei!
NoMoKeTo ist offline   Mit Zitat antworten
Alt 17-08-2007, 20:39   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 64
failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden

bei

PHP-Code:
        $res="http://$server/search?client=navclient-auto&ch=$ch&features=Rank&q=$url";
$data=fopen("$res",r); 
fakeX ist offline   Mit Zitat antworten
Alt 17-08-2007, 21:02   #6 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
php.ini allow_url_fopen muss auf On sein
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 17-08-2007, 21:19   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 64
Hallo,

ist auf on.

Ich bekomme auch

Forbidden
Your client does not have permission to get URL /search?client=navclient-auto from this server. (Client IP address: xx.xx.xxx.xx)

Please see Google's Terms of Service posted at http://www.google.com/terms_of_service.html


wenn ich http://www.google.at/search?client=navclient-auto ansurfe.
fakeX ist offline   Mit Zitat antworten
Alt 17-08-2007, 21:41   #8 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Gut, dass das nicht funktioniert dürfte klar sein, schliesslich ist das PHP-Script oben nur so lang um einen passenden Schlüssel zu generieren.

Ich hab das Script jetzt mal soweit angepasst das man eine eigene URL über ein Input-Feld angeben kann:

http://www.weixelbaumer.ch/test/test.php
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 17-08-2007, 21:45   #9 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 64
Hallo,

darf man wissen was du genau gemacht hast???
fakeX ist offline   Mit Zitat antworten
Alt 18-08-2007, 00:15   #10 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Nix weltbewegendes...

PHP-Code:
<?php

if( isset( $_POST['url'] ) ){
    
    
$url $_POST['url'];
    
}
    
?>
<form action="" method="post">
    <fieldset>
        <legend>GooglePagerank auslesen</legend>
        
        URL: <input type="text" name="url" value="http://www.deineseite.com" size="50"/><br />
        <br />
        <input type="submit" name="submit" value="submit" />
        
    </fieldset>
    
</form>

<?

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

define('GOOGLE_MAGIC',0xE6359A60);

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 
StringOrder($string){
  for(
$i=0;$i<strlen($string);$i++){$result[$i]=ord($string{$i});}
  return 
$result;
}



$server="www.google.com";

/* Alternative Server
$server="toolbarqueries.google.com";
$server="64.233.161.99";
$server="64.233.161.104";
$server="66.102.7.99";
$server="66.102.7.104";
$server="216.239.59.99";
$server="216.239.59.104";
$server="216.239.37.104";
$server="216.239.39.99";
$server="216.239.39.104";
$server="66.102.11.99";
$server="66.102.11.104";
$server="216.239.57.99";
$server="216.239.57.104";
$server="66.102.9.99";
$server="66.102.9.104";
$server="216.239.53.99";
$server="216.239.53.104";
*/
    
$url="info:".$url;
    
$ch=trim(str_replace("-","",sprintf("6%u\n",GoogleCH(StringOrder($url)))));
        
$res="http://$server/search?client=navclient-auto&ch=$ch&features=Rank&q=$url";
$data=@fopen("$res",r);
if(
$data){
    while(
$line fgets($data,1024)) {
        if(
substr($line,0,7)=="Rank_1:"){$rankline $line;}
    }
    
fclose($data);
    
$pagerank trim(substr($rankline,9,2));
    echo (
'Pagerank meiner Seite: <strong>'.$pagerank.'</strong>');
}
?>
PS: Seitwert.de zeigt den Pagerank übrigens auch an
__________________
(\__/)
(='.'=)
(")_(")

Geändert von Nightflyer (18-08-2007 um 00:31 Uhr)
Nightflyer ist offline   Mit Zitat antworten
Alt 19-08-2007, 09:39   #11 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 64
Hallo,

keine Chance, bekomme keine Daten.

Habe das @-Zeichen vor fopen entfernt um Fehler- bzw. Warning-Meldungen auszugeben.

[function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
fakeX ist offline   Mit Zitat antworten
Alt 19-08-2007, 11:25   #12 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 64
Hab scheinbar den Fehler gefunden.

http://www.abakus-internet-marketing...c/t-44781.html

Zitat:
das allseits bekannte Skript zur Berechnung der Checksumme, funktioniert NICHT auf 64bit und Multiprozessor-Boards.
Auf einem älteren Server funktioniert es nämlich wunderbar.

Hat einer ne Idee was man dagegen machen kann, bin ja sicher nicht der einzige mit einem Mulitprozessor Server???
fakeX ist offline   Mit Zitat antworten
Alt 19-08-2007, 13:34   #13 (permalink)
volln00b
 
Benutzerbild von ice-breaker
 
Registriert seit: Mar 2005
Ort: Kronberg
Beiträge: 163
Zitat:
Zitat von fakeX Beitrag anzeigen
Hat einer ne Idee was man dagegen machen kann, bin ja sicher nicht der einzige mit einem Mulitprozessor Server???
liegt nicht am multiprozessor sondern an 64bit
denn unter 64bit ist der integer doppelt so lang und dementsprechend stimmen die ganzen bit-operationen in dem Script oben nicht, man müsste also das gesamte Script oben umschreiben
__________________
<<vive la PHP>>
ice-breaker ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele