Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
stoecki

Inktomi Spider wird nicht richtig erkannt

Recommended Posts

Ich glaube es liegt daran, das der Bot verschiedene IP Adressen verwendet. Hab den Bot nur auf einen 1.1.2 Board in Aktion erlebt und dort war er mit mindestens 10 IP Adressen unterwegs.

Share this post


Link to post

ja, schon klar, aber soweit ich die funktion in der functions.php gecheckt hab, überprüft der keine IPS sondern nur den useragent, un den hab ich schon aktualisiert...

Share this post


Link to post

Ja, das stimmt, war vorhin nur recht früh. :lol:

Frage ist jetzt nur, gibt sich der Agent denn auch zu erkennen? Ich weiß also, das er es damals bei dem anderen Board nicht gemacht hat und auch in den Logs des Counters nichts darüber aufgetaucht ist. Ist aber schon recht lange her, deswegen kann es sich auch geändert haben.

Share this post


Link to post

        //-------------------------------------------------

        // Manage bots? (tee-hee)

        //-------------------------------------------------


        if ( $ibforums->vars['spider_sense'] == 1 )

        {


       	 $remap_agents = array(

                 'googlebot'     => 'google',

                 'slurp@inktomi' => 'inktomi',

                 'ask jeeves'    => 'jeeves',

                 'lycos'         => 'lycos',

                 'whatuseek'     => 'wuseek',

                 'ia_archiver'   => 'Archive_org',

               );


       	 if ( preg_match( '/(googlebot|slurp@inktomi|ask jeeves|lycos|whatuseek|ia_archiver)/i', $HTTP_SERVER_VARS['HTTP_USER_AGENT'], $match ) )

       	 {


          $DB->query("SELECT * from ibf_groups WHERE g_id=".$ibforums->vars['spider_group']);


          $group = $DB->fetch_row();


    foreach ($group as $k => $v)

    {

   	 $this->member[ $k ] = $v;

    }


    $this->member['restrict_post']    = 1;

    $this->member['g_use_search']     = 0;

    $this->member['g_email_friend']   = 0;

    $this->member['g_edit_profile']   = 0;

    $this->member['g_use_pm']         = 0;

    $this->member['g_is_supmod']      = 0;

    $this->member['g_access_cp']      = 0;

    $this->member['g_access_offline'] = 0;

    $this->member['g_avoid_flood']    = 0;

    $this->member['id']               = 0;


    $ibforums->perm_id       = $this->member['g_perm_id'];

          $ibforums->perm_id_array = explode( ",", $ibforums->perm_id );

          $ibforums->session_type  = 'cookie';

          $ibforums->is_bot        = 1;

          $this->session_id        = "";


          if ( ! $agent = $remap_agents[ $match[1] ] )

    {

   	 $agent = 'google';

    }


          if ( $ibforums->vars['spider_visit'] )

          {

         	 $dba = $DB->compile_db_insert_string( array (

                     	 'bot'          => $agent,

                     	 'query_string' => str_replace( "'", "", $HTTP_SERVER_VARS['QUERY_STRING']),

                     	 'ip_address'   => $_SERVER['REMOTE_ADDR'],

                     	 'entry_date'   => time(),

                    )        );


         	 $DB->query("INSERT INTO ibf_spider_logs ({$dba['FIELD_NAMES']}) VALUES({$dba['FIELD_VALUES']})");

          }


          if ( $ibforums->vars['spider_active'] )

          {

         	 $DB->query("DELETE FROM ibf_sessions WHERE id='".$agent."_session'");


         	 $this->create_bot_session($agent);

          }


          return $this->member;

       	 }

        }
das ist der quelltext, den ich dafür verantwortlich halte :) der Spider-Bot gibt sich folgendermaßen aus (HTTP_USER_AGENT-Variablen-Inhalt lauf Logfiles) ->
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/slurp)
Früher Stand da, wo jetzt im User-Agent Yahoo! Slurp steht "slurp@inktomi", was ja auch in der oben aufgeführten Funktion steht, hab das spaßenshalber mal auf "yahoo" und andere kombinationen umgestellt. Kein Erfolg. kann es sein, das genau hier:
          if ( ! $agent = $remap_agents[ $match[1] ] )

   {

    $agent = 'google';

   }

was nicht stimmt? Das kommt mir nämlich spanisch vor...

Share this post


Link to post

Hallo,

Inktomi ist nur ein Dienst, der seine Spider-Engine für Suchmaschinen zur Verfügung stellt. Etliche Suchmaschinen greifen auf diesen Dienst zurück.

Im Prinzip brauchst du nur das Array $remap_agents um einen weiteren Eintrag ergänzen.

Bsp.:

'yahoo' => 'Yahoo',
oder
'Yahoo!' => 'Yahoo',
oder
'yahoo.com' => 'Yahoo',
usw. Dann noch
if ( preg_match( '/(googlebot|slurp@inktomi|ask jeeves|lycos|whatuseek|ia_archiver)/i', $HTTP_SERVER_VARS['HTTP_USER_AGENT'], $match ) )
entsprechend ergänzen, z.B.
if ( preg_match( '/(googlebot|slurp@inktomi|yahoo|ask jeeves|lycos|whatuseek|ia_archiver)/i', $HTTP_SERVER_VARS['HTTP_USER_AGENT'], $match ) )

Damit wird jeder Useragent, der die o.g. Zeichenkette enthält, als Yahoo-Bot identifiziert. Du mußt halt nur sicherstellen, daß die von dir angegebene Zeichenkette auch wirklich immer im Useragent so auftaucht. Deshalb nicht zuviel angegeben, dafür aber eindeutig.

Um noch andere, vielleicht etwas exotischere Spider hinzuzufügen, einfach analog o.g. Bsp. verfahren ... ;)

Gruß,

AC

Edited by AliCremerU333

Share this post


Link to post

ne du, das, was du oben schreibst, funzt 100%ig nicht.

hab ich ja schon probiert gehabt...

if ( ! $agent = $remap_agents[ $match[1] ] )

  {

   $agent = 'google';

  }

die if abfrage gibt mir zu denken... es gibt kein gegenstück dazu, was $agent zuweist, wenn es ein bekannter bot ist... da liegt glaube das haupt-problem...

Share this post


Link to post

Damit werden doch nur die Bots abgefangen, die nicht im Array $remap_agents enthalten sind (und als "Google" deklariert). Deshalb muß es dazu auch kein "Gegenstück" geben.

Bei mir funktioniert es übrigens problemlos. Habe ca. ein halbes Dutzend Spider hinzugefügt, die auch alle erkannt werden.

Es kommt hauptsächlich auf die richtige Zeichenkette an. Entweder stimmt die bei dir nicht (ist z.B. zu lang oder mehrdeutig) oder der Useragent z.B. ist etwas anders oder ...

Gruß,

AC

Edited by AliCremerU333

Share this post


Link to post

Damit werden doch nur die Bots abgefangen, die nicht im Array $remap_agents enthalten sind (und als "Google" deklariert).

schon klar. und wo werden die erkannten als z.b. inktomi deklariert?

also inktomi wird bei mir egal wie ich den user-agent änder nicht erkannt...

Share this post


Link to post

Notfalls gibts hier einen Mod dafür. Sollte auch mit 1.3 Funktionieren, einfach mal testen.

Nebenbei: Wäre nett wenn du das nächste mal deinen Beitrag Editierst, wenn du kurz darauf noch etwas Hinzufügen möchtest, Danke =)

Share this post


Link to post

Notfalls gibts hier einen Mod dafür. Sollte auch mit 1.3 Funktionieren, einfach mal testen.

Funzt ohne Probs. Mal schauen ob ich den Inktomi irgendwie als Inktomi sichtbar machen kann ;-) Wäre trotdem cool, wenn AliCremerU333 mal seinen Teil aus der functions.php hier posten könnte.

Danke.

Edit: :D

Ok, dank des Mods erkennt er jetzt auch den Inktomi / Yahoo Bot...

Danke.

Edited by stoecki

Share this post


Link to post

Hallo,

wenn du unbedingt den entsprechenden Teil meiner functions.php sehen willst:

//-------------------------------------------------

        // Manage bots? (tee-hee)

        //-------------------------------------------------


        if ( $ibforums->vars['spider_sense'] == 1 )

        {


            $remap_agents = array(

                                   'googlebot'     => 'google',

                                   'google'     => 'google',

                                   'inktomi' => 'inktomi',

                                   'slurp' => 'inktomi',

                                   'jeeves'    => 'jeeves',

                                   'lycos'         => 'lycos',

                                   'whatuseek'     => 'wuseek',

                                   'ia_archiver'   => 'archive_org',

                                   'Yahoo' => 'yahoo',

                                   'Acoon' => 'acoon',

                                   'Scooter' => 'altavista',

                                   'Freecrawl' => 'euroseek',

                                   'ArchitextSpider' => 'exite',

                                   'Fireball' => 'fireball',

                                 );


            if ( preg_match( '/(googlebot|google|inktomi|slurp|jeeves|lycos|whatuseek|ia_archiver|Yahoo|Acoo

|Scooter|Freecrawl|ArchitextSpider|Fireball)/i', $HTTP_SERVER_VARS['HTTP_USER_AGENT'], $match ) )

            {


                $DB->query("SELECT * from ibf_groups WHERE g_id=".$ibforums->vars['spider_group']);


                $group = $DB->fetch_row();


                foreach ($group as $k => $v)

                {

                    $this->member[ $k ] = $v;

                }


                $this->member['restrict_post']    = 1;

                $this->member['g_use_search']     = 0;

                $this->member['g_email_friend']   = 0;

                $this->member['g_edit_profile']   = 0;

                $this->member['g_use_pm']         = 0;

                $this->member['g_is_supmod']      = 0;

                $this->member['g_access_cp']      = 0;

                $this->member['g_access_offline'] = 0;

                $this->member['g_avoid_flood']    = 0;

                $this->member['id']               = 0;


                $ibforums->perm_id       = $this->member['g_perm_id'];

                   $ibforums->perm_id_array = explode( ",", $ibforums->perm_id );

                   $ibforums->session_type  = 'cookie';

                   $ibforums->is_bot        = 1;

                   $this->session_id        = "";


                   if ( ! $agent = $remap_agents[ $match[1] ] )

                {

                    $agent = 'unknown';

                }
Funktioniert wunderbar. Was mir aber im Nachhinein einfällt: Wenn du hier neue Spider einfügst, mußt du für eine korrekte Anzeige im ACP dafür sorgen, daß in der conf_global.php die Spider auch alle enthalten und korrekt benannt sind. ;) Hier der entsprechende Teil meiner conf_global.php, der zu o.g. Teil meiner functions.php paßt:
$INFO['sp_acoon'] 	 =	'Acoon';

$INFO['sp_altavista'] 	 =	'Altavista';

$INFO['sp_archive_org'] 	 =	'Archive_org';

$INFO['sp_euroseek'] 	 =	'EuroSeek';

$INFO['sp_exite'] 	 =	'Exite';

$INFO['sp_fireball'] 	 =	'Fireball';

$INFO['sp_google'] 	 =	'Google';

$INFO['sp_inktomi'] 	 =	'Inktomi';

$INFO['sp_jeeves'] 	 =	'AskJeeves';

$INFO['sp_lycos'] 	 =	'Lycos';

$INFO['sp_wuseek'] 	 =	'WhatUSeek';

$INFO['sp_yahoo'] 	 =	'Yahoo';

$INFO['sp_unknown'] 	 =	'unbekannt';

Neben den "neuen" Spidern habe ich für unbekannte Spider nur die Zuordnung "google" in "unknown" geändert, damit wirklich nur der Googlebot als Google bezeichnet wird und nicht alle unbekannten anderen Spider auch als Google bezeichnet werden. Im ACP steht dann "unbekannt" als Bot ...

Gruß,

AC

Edited by AliCremerU333

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×