Hola,
Supongo que estaras usando un codigo semejante al de nuevo (incluso el mismo).
El "problema" es que tienes configurado PHP para que muestre todos los mensajes de error (ERROR, WARNING y NOTICE). Es la mejor configuracion para un entorno de desarrollo, en mi opinion.
El mensaje que pones es un NOTICE, que no es un error propiamente dicho, sino mas bien un aviso de que quizas estes haciendo algo mal. En este caso te lo da porque intentas acceder a un elemento de un array que no existe.
El codigo mas "correcto" seria usando isset():
Código PHP:
<?php
if ($_SERVER) {
if ( isset($_SERVER[HTTP_X_FORWARDED_FOR] )) {
$ip_real = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif ( isset($_SERVER['HTTP_CLIENT_IP'] )) {
$ip_real = $_SERVER['HTTP_CLIENT_IP'];
}
else {
$ip_real = $_SERVER['REMOTE_ADDR'];
}
}
else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$ip_real = getenv( 'HTTP_X_FORWARDED_FOR' );
}
elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$ip_real = getenv( 'HTTP_CLIENT_IP' );
}
else {
$ip_real = getenv( 'REMOTE_ADDR' );
}
}
echo 'La ip es '.$ip_real;
?>
Saludos.