- Home
- Categorie
- Coding e Sistemistica
- PHP
- Script che quando passa lo spider di google manda una mail
-
è 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
-
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
-
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
-
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.
-
Gabryk, bravo!
-
Gente funziona anche troppo!
Arrivano ventine di email al minuto...
-
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
-
No, la differenza è che prima quel bot non mandava mail, ma archiviava tutto su txt. Adesso fa entrambe.
-
@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
-
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.orgnella 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?????
**
-
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...
-
Scusate la domanda... fare un analisi del log no?
cose?????????????
scusa l'ignoranza
-
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:- ci si puo' dimenticare di aggiungere lo script in qualche pagina (quindi i dati non sono reali)
- il server perde tempo a fare i controlli per decidere se mandare la mail o scrivere su un file/db
- se si manda una mail e il server e' molto visitato allora si genera molto traffico mail
- se invece si scrivono su disco si occupa 2 volte lo spazio (una e' quella del logo, la seconda quella che scriviamo noi)
- 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?!?...
-
scusami ancora ma io questo file visot ke ho come dominio altervista dove lo trovo??
-
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...
-
ho trovato molto interessante lo script di Gabryk e vorrei utilizzarlo
ho fatto i 3 file:
spider-sense.dat
motori.txt
e spider.phpe 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 ?