Underc0de - La Casa de los Informáticos

Programación Web => Back-end => Mensaje iniciado por: ANTRAX en Marzo 28, 2012, 12:35:40 PM

Título: Capturador de IPs [PHP]
Publicado por: ANTRAX en Marzo 28, 2012, 12:35:40 PM
Hace tiempo Xt3mP realizo este codigo para obtener IPs de gente que entraba a la web, no con un fin malicioso, sino con el fin de saber quien atacaba en caso de un DOS.
Este codigo a demas de capturar la ip, le añadi tambien para guardar fecha y hora, para identificar la ip en caso de un ataque.
El codigo inicial era el siguietne:

Código (php) [Seleccionar]
<?php if ($_SERVER) { if ( $_SERVER["HTTP_X_FORWARDED_FOR"] ) { $realip $_SERVER["HTTP_X_FORWARDED_FOR"]; } elseif ( $_SERVER["HTTP_CLIENT_IP"] ) { $realip $_SERVER["HTTP_CLIENT_IP"]; } else { $realip $_SERVER["REMOTE_ADDR"]; } } else { if ( getenv"HTTP_X_FORWARDED_FOR" ) ) { $realip getenv"HTTP_X_FORWARDED_FOR" ); } elseif ( getenv"HTTP_CLIENT_IP" ) ) { $realip getenv"HTTP_CLIENT_IP" ); } else { $realip getenv"REMOTE_ADDR" ); } }
 
$f fopen("log.txt","a");
 
 
fwrite($f$realipPHP_EOL);
 
 
fwrite($f"==================="PHP_EOL);
 
fclose($f);
 
?>


Se puede mejorar y mucho, tiene ya su tiempo el codigo. Se añade en el index, se le da permiso de escritura, ya que almacena todo en un *.TXT
Este codigo debe ir acompañado de un archivo de texto como bien dije antes, llamado "log.txt"

Aca les dejo el codigo modificado para capturar fecha y hora:

Código (php) [Seleccionar]
<?php
if ($_SERVER) { if ( $_SERVER["HTTP_X_FORWARDED_FOR"] ) { $realip $_SERVER["HTTP_X_FORWARDED_FOR"]; } elseif ( $_SERVER["HTTP_CLIENT_IP"] ) { $realip $_SERVER["HTTP_CLIENT_IP"]; } else { $realip $_SERVER["REMOTE_ADDR"]; } } else { if ( getenv"HTTP_X_FORWARDED_FOR" ) ) { $realip getenv"HTTP_X_FORWARDED_FOR" ); } elseif ( getenv"HTTP_CLIENT_IP" ) ) { $realip getenv"HTTP_CLIENT_IP" ); } else { $realip getenv"REMOTE_ADDR" ); } }
$f fopen("log.txt","a");
fwrite($f$realipPHP_EOL);
fwrite($fdate('l jS \of F Y h:i:S A'));
fwrite($f"\r\n======================================"PHP_EOL);
fclose($f);
?>


El log se veria de la siguiente manera:

190.xxx.x.xxx
Friday 23rd of December 2011 12:41:rd PM
========================================
66.xxx.xxx.xxx
Friday 23rd of December 2011 12:43:rd PM
========================================
186.xxx.xx.xx
Friday 23rd of December 2011 12:43:rd PM
========================================
xxx.xxx.x.226
Friday 23rd of December 2011 12:44:rd PM
========================================


Por motivos obvios oculte las ips.

Xt3mp hizo una nueva modificacion del codigo dejandolo mas prolijo:

Código (php) [Seleccionar]
<?php
$ip 
$_SERVER['REMOTE_ADDR']; //IP
$meses = array('enero''febrero''marzo''abril''mayo''junio''julio''agosto''septiembre''octubre''noviembre''diciembre'); //Meses
$nombre 'logs'//Nombre de archivo
$dia date('d'); //Dia
$mes date('m') - 1//Mes
$ano date('Y'); //Año
$hora date('h:i:s'); //Hora
$file fopen($nombre.'.txt''a+'); //Abrimos archivo
fwrite($file,  'La IP '.$ip.' accedio el '.$dia.' de '.$meses[$mes].' del '.$ano.' a las '.$hora."\r\n"); //Guardamos información
fclose($file);//Cerramos archivo
?>


La IP 127.0.0.1 accedio el 23 de diciembre del 2011 a las 08:01:29
La IP 127.0.0.1 accedio el 23 de diciembre del 2011 a las 08:01:29
La IP 127.0.0.1 accedio el 23 de diciembre del 2011 a las 08:01:29


Espero que les sirva!

ANTRAX
Título: Re:Capturador de IPs [PHP]
Publicado por: Okol en Marzo 28, 2012, 04:31:33 PM
exelente ANTRAX gracias por tus aportes me encanto :D
Título: Re:Capturador de IPs [PHP]
Publicado por: baron.power en Marzo 30, 2012, 07:31:10 PM
gracias, utilisimo, saludos