De hecho, seria la forma correcta el trabajar con register_globals a off.. yo uso esta funcion:
Código PHP:
function getIP() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif (isset($_SERVER['HTTP_VIA'])) {
$ip = $_SERVER['HTTP_VIA'];
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
return (isset($ip) && long2ip(ip2long($ip))) ? $ip : "Desconocida" ;
}