un Forastero <Webworking>
Wann kommt der Bot?
Montag, 27 Juli 2009
Viel benötigt es nicht, um Botbesuche zu registrieren. Was wir brauchen steckt in der Server-Variablen $_SERVER['HTTP_USER_AGENT']. Jeder Bot hat einen eigenen Namen, den wir aus der Variablen auslesen. Steckt im User-Agent zum Beispiel archiver, dann ist es der Bot von Alexa.
<?php
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(stristr($useragent, "archiver")) {$robotvon="Alexa";}
if(stristr($useragent, "googlebot")) {$robotvon="Google";}
if(stristr($useragent, "msnbot")) {$robotvon="MSN";}
if(stristr($useragent, "exabot")) {$robotvon="Exalead";}
if(stristr($useragent, "firefly")) {$robotvon="Fireball";}
?>
Mit stristr() wird unabhängig von Groß- und Kleinschreibung ermittelt, ob in der Variable der entsprechende Ausdruck drinsteckt. Handelt es sich beim User-Agent um einen dieser 5 Bots, wird das in die Variable $robotvon geschrieben.
<?php
if($robotvon!= ""){
@mail("robotmelder@uvwxyz.de", "Der Suchmaschinen-Bot von $robotvon war da!", "", "From: robotmelder@uvwxyz.de
<Robotmelder>");
}
?>
Die Mail, die versendet wird, können wir noch ein bischen interessanter uns informativer gestalten, denn momentan ist sie noch leer.
<?php
$datum = date('Y-m-d');
$uhrzeit = date('H:i:s');
$host = $_SERVER['HTTP_HOST'];
$addr = $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];
$mailtext="
Robot von $robotvon war
am $datum um $uhrzeit Uhr da.
HTTP HOST = $host
REMOTE_ADDR = $addr
HTTP_REFERER = $referer
";
@mail("robotmelder@uvwxyz.de", "Der Suchmaschinen-Bot von $robotvon war da!", $mailtext, "From: robotmelder@uvwxyz.de <Robotmelder>");
?>
Bestimmt wird das Datum und die Uhrzeit, der Host, die Remote-Adresse und der Referer. Alle Infos werden in die Variable $mailtext geschrieben, die dann als Textteil unserer Mail versendet wird.
Das Script kann man zum Beispiel durch include oder direkt als PHP-Quellcode in die entsprechende Webseite einbauen.
Download: Und hier das fertige Script "Robotmelder" zum Herunterladen. (zip, 4KB)