• 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


  • 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 ?