• 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


  • User Attivo

    ragazzi io ho integrato lo script postato da Tuonorosso
    nel mio footer però ho un problem

    <?php
    /* ------------------------------------------------------------ /
    /
    Spider-Sense /
    /
    Detects bot activity and alerts you to their presence /
    /
    By Shawn Raloff /
    /
    http://www.side2.com /
    /
    ------------------------------------------------------------ */

    /* ---------- You must set these variables ---------- */
    $domain = "http://vinarcid0810.altervista.org/";
    $email = "[email protected]";

    /* ---------- No need to edit beyond this point ---------- */
    $bot = $_SERVER['HTTP_USER_AGENT'];
    $page = $_SERVER['PHP_SELF'];

    /* ---------- Look for bots ---------- */
    ini_set("sendmail_from",'[email protected]');

    //mail("$email", "aaaa", "aaa");
    $myFile = fopen("spider-sense.dat","r");
    while(!feof($myFile))
    {
    $myLine = chop(fgets($myFile, 255));
    list($agent,$url) = split("*", $myLine);
    if( eregi($agent,$bot) )
    {
    mail("$email", "$agent detected on $domain", "$agent has crawled $page on $domain");
    }
    }

    fclose($myFile);

    //echo "Powered By Side2.com";
    ?>

    la pagina footer viene richiamata da tutte le altre pagine del sito
    mettendo nello script l'indirizzo del sito
    http://vinarcid0810.altervista.org

    nella home nn ho problemi mentre nelle altre mi da errore

    Fatal error: Maximum execution time of 15 seconds exceeded in /membri/vinarcid0810/footer.php on line **52

    cosa devo fare lo devo integrare in ogni singola pagina?????
    **


  • User Attivo

    Scusate la domanda... fare un analisi del log no?... io credo che questo genere di operazione/analisi vada fatta offline perche' su un sito molto visitato diventa troppo pesante e rischia di rallentare il server...

    bho...


  • User Attivo

    Scusate la domanda... fare un analisi del log no?

    cose?????????????
    scusa l'ignoranza


  • User Attivo

    il log del server riporta tutti i dati per ogni singola chiamata ricevuta... comprensivi di user-agent... quindi le stesse informazioni che con quegli script si vogliono tracciare sono gia' memorizzate nei log e basta recuperarle da li...
    Secondo me può essere controproducente tracciare in ogni pagina per diversi motivi:

    1. ci si puo' dimenticare di aggiungere lo script in qualche pagina (quindi i dati non sono reali)
    2. il server perde tempo a fare i controlli per decidere se mandare la mail o scrivere su un file/db
    3. se si manda una mail e il server e' molto visitato allora si genera molto traffico mail
    4. se invece si scrivono su disco si occupa 2 volte lo spazio (una e' quella del logo, la seconda quella che scriviamo noi)
    5. nel tempo, manipolare il file di testo o il db con i dati diventa lento a causa del numero di dati memorizzato

    ...mio parere neh?!?...


  • User Attivo

    scusami ancora ma io questo file visot ke ho come dominio altervista dove lo trovo??


  • User Attivo

    non conosco altervista e non saprei dirti, sorry... sono file di sistema, non so se su quel dominio li hai a disposizione...
    La mia era una considerazione in generale, se poi non si puo' accedere ai log del server, e' chiaro che serve percorrere un altra strada... resta solo da vedere se il farlo non appesantisce troppo il caricamente delle pagine...


  • User

    ho trovato molto interessante lo script di Gabryk e vorrei utilizzarlo

    ho fatto i 3 file:

    spider-sense.dat
    motori.txt
    e spider.php

    e vorrei inserire lo script in tutte le pagine o quasi

    Per mettere l'include a spider.php devo rinominare tutte le mie pagine con l'estensione php e aggiornare quindi i relativi link ?

    ho capito bene ?

    ma google poi non me le vede come pagine nuove ?

    perderei la posizione raggiunta fin'ora ?