Guru
29/06/2006, 12:56
A veces por motivos de seguridad es necesario mostrarle al visitante que conocemos su IP de navegación, para ello es este pequeño código:
<? $realip = $_SERVER["REMOTE_ADDR"]; ?>
Pero este dato puede verse modificado por la utilización de proxys que enmascaran la verdadera ip del usuario, y se nos puede engañar. Para evitar esto, vamos a capturar la ip verdadera del usuario:
<?
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" );
}
}
?>
La vamos a imprimir del siguiente modo:
<?
print $realip;
?>
Saludos
<? $realip = $_SERVER["REMOTE_ADDR"]; ?>
Pero este dato puede verse modificado por la utilización de proxys que enmascaran la verdadera ip del usuario, y se nos puede engañar. Para evitar esto, vamos a capturar la ip verdadera del usuario:
<?
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" );
}
}
?>
La vamos a imprimir del siguiente modo:
<?
print $realip;
?>
Saludos