Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2012, 14:49
Avatar de vargasrenee
vargasrenee
 
Fecha de Ingreso: junio-2008
Mensajes: 32
Antigüedad: 15 años, 10 meses
Puntos: 1
Pregunta codigo para mostrar la IP local, IP pública, la IP del proxy y el hostname

Buenas las tengan todos,

Hace ya un tiempo encontre en internet un script para conocer la IP local, IP pública, la IP del proxy y el hostname de la IP pública, de las personas que contestaban un cuestionario en linea. El script es el siguiente:

Código PHP:
# codigo que intenta mostrar la IP local, IP pública, la IP del proxy y el hostname de la IP pública

if($_SERVER["HTTP_X_FORWARDED_FOR"])
{
    if(
$pos=strpos($_SERVER["HTTP_X_FORWARDED_FOR"]," "))
    {
        echo 
"IP local: ".substr($_SERVER["HTTP_X_FORWARDED_FOR"],0,$pos)." - IP Pública: ".substr($_SERVER["HTTP_X_FORWARDED_FOR"],$pos+1);
        
$hostlocal=substr($_SERVER["HTTP_X_FORWARDED_FOR"],$pos+1);
    }else{
        echo 
"&ippublica=".$_SERVER["HTTP_X_FORWARDED_FOR"];
        
$hostlocal=$_SERVER["HTTP_X_FORWARDED_FOR"];
    }
    if(
$_SERVER["REMOTE_ADDR"])
        echo 
" - Proxy: ".$_SERVER["REMOTE_ADDR"];
}else{
    echo 
"&ippublica=".$_SERVER["REMOTE_ADDR"];
    
$hostlocal=$_SERVER["REMOTE_ADDR"];
    if(
$hostlocal!=$_SERVER["REMOTE_ADDR"])
        echo 
" - Hostname: ".$hostlocal;
}
$hostname=gethostbyaddr($hostlocal);
if(
$hostlocal!=$hostname)
    echo 
"&hostname=".$hostname;

   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']; }
   else { 
$ip "Desconocido"; }
   echo 
"&ip=" $ip "&dns=".$_SERVER['HTTP_USER_AGENT']; 

Todo iba bien hasta que mi hosting actualizo la version de php a la version 5.4.7 y aunque algunos scripts siguen trabajando normal, en especial este para conocer la ip me da el siguente error:

[an error occurred while processing this directive]

Alguna idea de lo que tengo que hacer para hacerlo funcionar de nuevo. Ya he estado googleando pero no encuentro nada y mi experiencie con php es mas que "null" :P

Cualquier ayuda seria bien recibida!

G.