Capturador de IPs [PHP]

Iniciado por ANTRAX, Marzo 28, 2012, 12:35:40 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 28, 2012, 12:35:40 PM Ultima modificación: Marzo 27, 2014, 05:49:51 PM por Expermicid
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
<?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, $realip. PHP_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
<?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, $realip. PHP_EOL);
fwrite($f, date('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:

Código: php
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
<?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
?>


Código: php
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


exelente ANTRAX gracias por tus aportes me encanto :D
Underc0de Manager!