$MIA = $HTTP_SERVER_VARS["REMOTE_ADDR"];
Esa (caso del "else" de ese script) no es tu IP "real" si pasas por un proxy ..
Fijate que tiene en cuenta si está definida $_SERVER y que usa ademas una variable de servidor "HTTP_CLIENT_IP" ademas de las mencionadas ...
Prueba esto:
Código PHP:
<?
function getip() {
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' );
}
}
return $realip;
}
// ejemplo
echo getip();
?>
Un saludo,
pd: código extraido de los comentarios de los usuarios del tema "Predefinided variables" ...