• User Attivo

    Brrrravo!!

    :yuppi:

    P.S. Ma che siti hai?...x curiosità.


  • User Attivo

    www.skiforum.it
    Ho messo il codice già ieri ma non mi è arrivata nessuna email, nonostante dall'admin panel abbia beccato il googlebot già diverse volte :mmm: :mmm:


  • Community Manager

    @Tuonorosso said:

    vi sbagliate,
    io ho messo tranquillamente del php alla fine dell'overall_footer.tpl

    basta mettere

    <?php

    il tuo script

    ?>

    :ciauz:

    Ci stavo pensando oggi e mi sono detto: ma che cretino che sono gli ho suggerito di metterlo in mille file invece basta uno :arrabbiato:

    Chiedo venia per il suggerimento peggiore 🙂


  • User Attivo

    anche a me non arriva alcuna email 😢


  • User Attivo

    a me funziona perfettamente :yuppi:

    avessi voglia potrei creare anche la versione con un database, soltanto che questo script fa solo un controllo sull'agent e non sull'ip, perché altri lo fanno anche sull'ip ? ci sono bot ke si spacciano per google in giro?


  • User

    Ciao a tutti, sono nuovo.
    Ho trovato il forum cercando una soluzione per piazzare una checkbox in una pagina php, e poi ho trovato questa discussione interessante...

    Quale dei due codici proposti utilizzate voi?
    Io ho usato il secondo e più semplice... e l'ho messo nell'index.php in questo modo, propio in cima:

    <?php
    /**

    • @version $Id: index.php,v 1.41 2004/09/23 23:09:23 rcastley Exp $
    • @package Mambo_4.5.1
    • @copyright (C) 2000 - 2004 Miro International Pty Ltd
    • @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
    • Mambo is Free Software
      */

    if(eregi("googlebot",$HTTP_USER_AGENT))
    {
    if ($QUERY_STRING != "")
    {$url = "http://".$SERVER_NAME.$PHP_SELF.'?'.$QUERY_STRING;}
    else
    {$url = "http://".$SERVER_NAME.$PHP_SELF;}
    $today = date("F j, Y, g:i a");
    mail("[email protected]", "Googlebot detected on http://$SERVER_NAME", "$today - Google crawled $url");
    }

    /** Set flag that this is a parent file */
    define( '_VALID_MOS', 1 );

    E' corretto? Funge così?
    Non ho ben capito la differenza tra i due codici proposti, questo manda una mail e l'altro salva tutto in un file di testo, è solo questa la differenza?
    Ciao! 😄


  • User Attivo

    il codice da te postato riconosce solo google, quello che sta qualche pagina dietro riconosce tutti i bot, direi che decisamente meglio 😉


  • User

    Aaaa, ma l'altro come si usa? Cioè in che file e posizione bisogna metterlo?

    Grazie per la risposta cmq.


  • User Attivo

    basta che lo copi un file esterno e poi fai un include in tutti quelli che ti servono.

    o altrimenti fai come per l'altro e lo metti in cima alla index. così facendo cmq ti avvisa solo quando il bot passa sulla index.


  • User

    Scusami, sono piuttosto inesperto di php...
    Un include cioè? Puoi spiegarmi la sintassi e dove va piazzato nel corpo delle pagine (tipo nell'head...) ?


  • User

    Rieccomi, mi serve qualche info sul bot che ha postato TuonoRosso a pagina 1 e di cui questo è uno spaccato di codice:

    Codice:
    pagina 1:
    <?php
    /* ------------------------------------------------------------ /
    /
    Spider-Sense /
    /
    Detects bot activity and alerts you to their presence /
    /
    By Shawn Raloff

    Io ho messo tutto quello che c'è nel primo riquadro in un file chiamato spider-sense.php e quello nel secondo quadrato in un altro file spider-sense.dat è corretto?
    Poi nell'index ho scritto: include( 'spider-sense.php' );

    Però mi da un errore... è giusto fare così?


  • User Attivo

    è giusto se i due file li metti nella stessa directory in cui metti l'include, altrimenti devi dargli una posizione diversa, o altrimenti vai nel primo forum dove ho postato il codice modificato 😉


  • Super User

    sto modificando lo script che uso per fare in modo che al posto che inviare una mail registri i dati in una tabella (mysql) in modo da poter avere i dati in un report di più agevole consultazione.

    quando cominci ad avere un po' di siti con qualche centinaio di pagine l'uno e ti fai mandare una mail per ogni bot... praticamente passi la giornata a cancellare email ed arrivi al punto di disabilitare lo script per la disperazione.

    invece quelle info sono importantissime 🙂


  • User

    Io però credevo che non si vedesse la modifica all'index (è qui che ho messo l'include), invece appare uno spazio vuoto in cima alla pagina e ho scoperto che selezionandolo si scoprono delle scritte che hanno lo stesso colore dello sfondo e che riportano un errore.

    Warning: eregi(): REG_EMPTY in /web/htdocs/www.metalzena.it/home/spider-sense.php on line 27

    Alla riga 27 trovo:
    if( eregi($agent,$bot) )
    {
    mail("$email", "$agent detected on $domain", "$agent has crawled $page on $domain");
    }

    Ma non capisco dov'è il problema se dite che è giusto. Tra l'altro i file sono nella stessa directory dell'ndex.php


  • User

    Scusate i post ravvicinati, ma ho modificato il bot trovato a pagina 1 aggiungendogli la funzione per mandare i report per mail.

    Ecco il codice

    <?

    $agents = array(
    "ultraseek" => "Infoseek",
    "sidewinder/" => "Infoseek",
    "ia_archiver" => "Alexa",
    "arianna.iol.it" => "Arianna",
    "ask jeeves" => "Ask jeeves",
    "fast-webcrawler/" => "Fast",
    "googlebot-" => "Google Immagini",
    "googlebot/" => "Google",
    "mercator-" => "Altavista",
    "scooter/" => "Altavista",
    "scooter-" => "Altavista",
    "arachnoidea" => "Arachnoidea",
    "yhaoo" => "Yahoo",
    "slurp" => "Inkomi",
    "gulliver/" => "NorthernLight",
    "lycos_spider_(t-rex)" => "Lycos",
    "architextspider" => "Excite",
    "libwww-perl/" => "Excite",
    "almaden.ibm.com" => "Ibm Resarch"
    );

    $filename = "motori.txt";
    $ua = $_SERVER["HTTP_USER_AGENT"];
    $page = $_SERVER['PHP_SELF'];

    foreach ($agents as $ag => $motore) {
    //print date(" d-M-Y H:i ") . " \t" . $motore . " \t" . $ag . " \t" . $page ."\n";
    if (strpos (strtolower (" " . $ua), $ag) > 0) {
    $fp = fopen($filename, "a");

    if ($fp) { 
      fwrite($fp, date(" d-M-Y H:i ") . " \t" . $motore . " \t" . $ag . " \t" . $page ."\n"); 
      fclose($fp); 
      break; 
    } 
    

    }
    $today = date("F j, Y, g:i a");
    mail("[email protected]", "$motore detected on $page", "$today - $motore è passato su $page");
    }

    ?>

    Penso che poi aggiungerò gli altri spider elencati dal bot in 2 file.


  • Community Manager

    Gabryk, bravo!


  • User

    Gente funziona anche troppo!
    Arrivano ventine di email al minuto... 😮


  • User Attivo

    non ho ben capito dove sta la differenza? ci metti la data?

    bè cmq nn lho fatto in sql perché per le stats uso phpstats anche se con i motori non mi pare funzionare granché bene, almeno per il forum : |

    se ho tempo e voglia metto su qualche stats dedicata ai bot


  • User

    No, la differenza è che prima quel bot non mandava mail, ma archiviava tutto su txt. Adesso fa entrambe.


  • User Newbie

    @Gabryk said:

    Gente funziona anche troppo!
    Arrivano ventine di email al minuto... 😮

    Sì, è perchè ti è sfuggita una parentesi, il codice corretto dovrebbe essere:

    foreach ($agents as $ag => $motore) {
    //print date(" d-M-Y H:i ") . " \t" . $motore . " \t" . $ag . " \t" . $page ."\n";
    if (strpos (strtolower (" " . $ua), $ag) > 0) {
    $fp = fopen($filename, "a");

    if ($fp) {
    fwrite($fp, date(" d-M-Y H:i ") . " \t" . $motore . " \t" . $ag . " \t" . $page ."\n");
    fclose($fp);
    break;
    }
    $today = date("F j, Y, g:i a");
    mail("[email protected]", "$motore detected on $page", "$today - $motore è passato su $page");
    }
    }

    ?>

    ciao, ciao