mroszynski: Robots erkennen

Ich möchte Robots erkennen und entsprechend auswerten (ja/nein).

  1. Ich möchte Robots erkennen und entsprechend auswerten (ja/nein).

    Google: http://support.google.com/webmasters/bin/answer.py?hl=de&answer=1061943

    1. Ich möchte Robots erkennen und entsprechend auswerten (ja/nein).
      Google: http://support.google.com/webmasters/bin/answer.py?hl=de&answer=1061943

      Ich möchte die Auswertung selbst übernehmen und nich Google überlassen

      1. Ich möchte Robots erkennen und entsprechend auswerten (ja/nein).
        Google: http://support.google.com/webmasters/bin/answer.py?hl=de&answer=1061943
        Ich möchte die Auswertung selbst übernehmen und nich Google überlassen

        Wir hätten gerne, dass du einen verlinkten Artikel sinnerfassend liest und wenn du eine konkrete Frage zum Inhalt hast, diese auch so stellst.

        Die Antwort von Gunther beschreibt exakt wie du z.B. die Robots von Google erkennen kannst - was ist nun dein _exaktes_ Problem?

        1. Ich möchte Robots erkennen und entsprechend auswerten (ja/nein).

          Ich habe festgestellt, dass meine Fundstellen bei Google sich dadurch auszeichnen, dass Google bei Abfragen keine Sprache übermittelt.

          Ich habe dieses eingebaut:

          $p591_lg = strtolower( $_SERVER['HTTP_ACCEPT_LANGUAGE'] );  
          $arr_p591_lg  = explode( ',', $p591_lg ); // ru,en;q=0.9,es;q=0.8,de;q=0.7  
          if ( $arr_p591_lg[0] ) $p591_lg = $arr_p591_lg[0];  
          if ( $p591_lg[2]<'a' || $p591_lg[2]>'z' ) $p591_lg = substr( $p591_lg, 0, 2 );  
          $zugriff =( $zugriff && $p591_lg && $p591_lg > "aa"  && $p591_lg < "zzz" );  
          //echo "<center>accept=[".$_SERVER['HTTP_ACCEPT_LANGUAGE']."] lg=[".$p591_lg."] zugriff=[".$zugriff."]</center>";  
          if (!$zugriff ) echo "<center><h2>".date("d.m.Y H:i",time())." - zu viele Anfragen.<br>fuer Suchmaschinen<br>voruebergehend nicht verfuegbar.</h2></center>";  
          
          

          Im Programm gibt es dauernd Abfragen, ob $zugriff erlaubt ist.

          Bei mir geht es darum, Server-Überlastung abzuwehren.

          Linuchs

          1. Ich möchte Robots erkennen und entsprechend auswerten (ja/nein).

            Ich habe festgestellt, dass meine Fundstellen bei Google sich dadurch auszeichnen, dass Google bei Abfragen keine Sprache übermittelt.

            Ich habe dieses eingebaut:

            $p591_lg = strtolower( $_SERVER['HTTP_ACCEPT_LANGUAGE'] );

            $arr_p591_lg  = explode( ',', $p591_lg ); // ru,en;q=0.9,es;q=0.8,de;q=0.7
            if ( $arr_p591_lg[0] ) $p591_lg = $arr_p591_lg[0];
            if ( $p591_lg[2]<'a' || $p591_lg[2]>'z' ) $p591_lg = substr( $p591_lg, 0, 2 );
            $zugriff =( $zugriff && $p591_lg && $p591_lg > "aa"  && $p591_lg < "zzz" );
            //echo "<center>accept=[".$_SERVER['HTTP_ACCEPT_LANGUAGE']."] lg=[".$p591_lg."] zugriff=[".$zugriff."]</center>";
            if (!$zugriff ) echo "<center><h2>".date("d.m.Y H:i",time())." - zu viele Anfragen.<br>fuer Suchmaschinen<br>voruebergehend nicht verfuegbar.</h2></center>";

            
            >   
            > Im Programm gibt es dauernd Abfragen, ob $zugriff erlaubt ist.  
            >   
            > Bei mir geht es darum, Server-Überlastung abzuwehren.  
              
            Und da willst du eine selbstgestrickte Lösung verwenden die mehr schlecht als recht tut, was du eigentlich willst :)  
              
            Wenn du die Accept-Language bestimmen willst, gibt es fertige Lösungen wie z.B. das PEAR-Paket "HTTP" ([negotiateLanguage](http://pear.php.net/manual/en/package.http.http.negotiatelanguage.php/)) oder das PECL-Paket "pecl\_http" ([http_negotiate_language](http://php.net/manual/en/function.http-negotiate-language.php))  
              
            Als antwort HTTP 503 auszuliefert wäre ebenfalls von Vorteil, denn sonst wird diese Unsinnsausgabe auch noch indexiert.  
              
            Aber generell sind solche "sperren" auf seiten des HTTP-Servers besser aufgehoben, wenn du schon PHP anwirfst, erzeugst du bereits unnütze Last.  
              
            Eine Ebene davor wäre das Problem bereits z.B. mit mod\_rewrite lösbar, aber auch das erzeugt unnötigt Last am Server.  
              
            Noch geeigneter dafür sind spezialisierte Module für die HTTP-Server-Software die unerwünschten Traffic abfangen und garnicht erst an die komplexeren Routinen durchreichen - mod\_evasive wäre hier z.B. eine Möglichkeit.  
              
            Aber wenn normaler Traffic von Suchmaschinenrobots bereits zu viel Last erzeugt, ist der Server unterdimensioniert oder einfach falsch konfiguriert, da hilft auch nachträglich herumstricken vermutlich nicht viel.  
            
            
            1. Ich will Robots nicht grundsätzlich abwehren, sondern nur einen entsprechenden Zähler führen.
              Über robot.txt oder norobots werden diese grundsätzlich abgewehrt. Gibt es z.B. eine Liste über Robots, die ich auswerten kann? Danke

              1. Ich will Robots nicht grundsätzlich abwehren, sondern nur einen entsprechenden Zähler führen.

                Nimm einen Logfile-Analyzer - die sind idR. recht gut in sowas.

                Gibt es z.B. eine Liste über Robots, die ich auswerten kann?

                Ja, solche mehr oder weniger vollständige Listen gibt es.

  2. Ich möchte Robots erkennen und entsprechend auswerten (ja/nein).

    Hallo mroszynski,

    bitte versuche in Zukunft, etwas schneller auf den Punkt zu kommen und Dein Problem kurz und kanpp zu schildern. Erstens hat nicht jeder so viel Zeit, sich das alles durchzulesen und zweitens versteht man ein knapp formuliertes Posting viel besser. Abgesehen davon nerven Leute, die grüßen oder um etwas bitten. Fast so wie die, die ihr Problem artikulieren, weil sie denken, es müsse verständlich sein.

    Mit freundlichen Grüßen

    Hugo Egon Balder