Espía los ingresos de motores de búsqueda a tu sitio
- Por Larry Hans Arroyo Vargas
- Publicado 28.07.08
- PHP
-
Rating:




Nuestro código "mejorado"
Ok, llegados a la página dos de esta entrega, comenzamos a fuego con el material nuevo.
El código que hemos implementado lo hemos titulado botspy.php.
botspy.php:
<?php
/*
*
* Recibe un email al día, informándote cuando un motor de búsqueda visito tu sitio web.
*
* Idea original: http://www.codigogeek.com/2008/06/22/recibe-un-email-cuando-googlebot-visite-tu-blog/
* http://www.leemiblog.com/Articulos/Programacion/Recibe-un-email-cada-vez-que-Google-visita-tu-pgina.html
*
* Hacking Ball Z
* http://www.hackingballz.com/articulos/40/1/Espia-los-ingresos-de-motores-de-busqueda-a-tu-sitio/Page1.html
*/
//Opción demo
if($_GET['demo'] == 1){
$_SERVER['HTTP_USER_AGENT'] = 'demo-googlebot';
}
//Correo electrónico
$abdy = 'tu@correo.com';
//Directorio de trabajo
$botspy = '/path/completo/demo_robots_spider/botspy'; # CHMOD 777 a todos los archivos.
// Bots "reconociodos"
$bots = array('googlebot','msnbot','yahoo','teoma','gigabot','robozilla','nutch','ia_archiver','baiduspider');
/*
Google googlebot
MSN Search msnbot
Yahoo yahoo
Ask/Teoma teoma
GigaBlast gigabot
DMOZ Checker robozilla
Nutch nutch
Alexa/Wayback ia_archiver
Baidu baiduspider
*/
// Definimos HOY
$hoy = date('d-m-Y');
// Procesamos el USER_AGENT para verificar si es un bot reconocido.
while (list($key, $val) = each($bots)) {
if ( stripos( $_SERVER['HTTP_USER_AGENT'], $val ) !== false ){
$found_bot = true;
break;
}
}
// Si es un Bot reconocido, procesiguimos.
if($found_bot){
//Escribimos en el log los detalles
$cadena = $_SERVER['HTTP_USER_AGENT']. ' || '. $_SERVER['REMOTE_ADDR'] .' || '. date('h:i:s A') . "\r\n";
file_put_contents($botspy.'/'.$hoy.'.log',$cadena,FILE_APPEND);
}
// Enviamos un mensaje al día con el Blog del día anterior
if(!file_exists($botspy.'/'.$hoy.'.mail.log')){
if ($gestor = opendir($botspy)) {
while (false !== ($archivo = readdir($gestor))) {
if ($archivo != "." && $archivo != ".." && $archivo != $hoy.'.log') {
$log = fopen ($botspy.'/'.$archivo, "r");
while (!feof ($log)) {
//si extraigo una línea del archivo y no es false
if ($contenido .= fgets($log)){
//acumulo una en la variable número de líneas
$num_lineas++;
}
}
fclose($log);
unlink($botspy.'/'.$archivo);
}
}
closedir($gestor);
}
$mensaje = ("
FECHA ACTUAL: $hoy
REPORTE DEL DÍA DE AYER
===============================
Total de visitas de bots reconocidos: $num_lineas
LOG
===============================
$contenido
Un hacking saludo...
HACKING BALL Z
http://www.hackingballz.com
");
if(trim($num_lineas)!=''){
mail($abdy,'Informe de visitas de los robots ayer.',$mensaje);
}
file_put_contents($botspy.'/'.$hoy.'.mail.log','');
}
?>
A lo largo del código añadimos comentarios, en las partes más determinantes del proceso, el cual en general no incluye funciones demasiado complicadas, que pueden ser fácilmente detalladas, visualizando el manual oficial de cada una de ellas.
Como es normal, al ser este un script que trabaja por días, realizamos las pruebas correspondientes en un sitio web amigo de Hacking Ball Z, y en la página siguiente, mostramos a manera de bitácora, los resultados de 3 días de utilización, y los datos de instalación del script.
