Capturar IP con PHP

Iniciado por ANTRAX, Noviembre 14, 2013, 11:08:25 AM

Tema anterior - Siguiente tema

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


Hola a todos. Hoy dia un user del foro queria saber como obtener una ip de forma facil, y le dije que habia una forma sencilla por medio de PHP.
Lo unico que hace falta es tener un host en donde montar el script.

La forma mas facil seria de la siguiente manera:

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);

?>


En donde tendriamos el siguiente resultado:

Se puede mejorar y mucho el codigo. Este 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: text
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
========================================


Espero que les sirva, y si tienen mejoras para el codigo, seria bueno leerlas!