Foros del Web » Programando para Internet » PHP »

problemas para recueprar una IP

Estas en el tema de problemas para recueprar una IP en el foro de PHP en Foros del Web. Hola a todos, Estoy intentando recuperar las ip de los usuarios, el problema es que, siempre me devueve el mismo ip que es 127.0.0.1. Yo ...
  #1 (permalink)  
Antiguo 10/10/2008, 09:53
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
problemas para recueprar una IP

Hola a todos,

Estoy intentando recuperar las ip de los usuarios, el problema es que, siempre me devueve el mismo ip que es 127.0.0.1.

Yo hago esto para recueperar la ip
Código PHP:
 global $HTTP_SERVER_VARS;
if (
$HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] != ""){
$ip $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}else{
$ip $HTTP_SERVER_VARS["REMOTE_ADDR"]; }
echo 
$ip
Pero no funciona siempre me devuelve el mismo numero.

Alguien me puede ayudar¿? Cual es mi error¿? Hay otra funcion que se use y yo no conozco¿? Gracias
  #2 (permalink)  
Antiguo 10/10/2008, 09:59
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: problemas para recueprar una IP

Pues encontre esta función en internet espero le sirva

Código PHP:
<?
function getRealIP()
{
   
   if( 
$_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
   {
      
$client_ip =
         ( !empty(
$_SERVER['REMOTE_ADDR']) ) ?
            
$_SERVER['REMOTE_ADDR']
            :
            ( ( !empty(
$_ENV['REMOTE_ADDR']) ) ?
               
$_ENV['REMOTE_ADDR']
               :
               
"unknown" );
   
      
// los proxys van añadiendo al final de esta cabecera
      // las direcciones ip que van "ocultando". Para localizar la ip real
      // del usuario se comienza a mirar por el principio hasta encontrar
      // una dirección ip que no sea del rango privado. En caso de no
      // encontrarse ninguna se toma como valor el REMOTE_ADDR
   
      
$entries split('[, ]'$_SERVER['HTTP_X_FORWARDED_FOR']);
   
      
reset($entries);
      while (list(, 
$entry) = each($entries))
      {
         
$entry trim($entry);
         if ( 
preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/"$entry$ip_list) )
         {
            
// http://www.faqs.org/rfcs/rfc1918.html
            
$private_ip = array(
                  
'/^0\./',
                  
'/^127\.0\.0\.1/',
                  
'/^192\.168\..*/',
                  
'/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
                  
'/^10\..*/');
   
            
$found_ip preg_replace($private_ip$client_ip$ip_list[1]);
   
            if (
$client_ip != $found_ip)
            {
               
$client_ip $found_ip;
               break;
            }
         }
      }
   }
   else
   {
      
$client_ip =
         ( !empty(
$_SERVER['REMOTE_ADDR']) ) ?
            
$_SERVER['REMOTE_ADDR']
            :
            ( ( !empty(
$_ENV['REMOTE_ADDR']) ) ?
               
$_ENV['REMOTE_ADDR']
               :
               
"unknown" );
   }
   
   return 
$client_ip;
   
}
?>
  #3 (permalink)  
Antiguo 10/10/2008, 10:05
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: problemas para recueprar una IP

bueno amigo yo utilizo algo mas sencillo y me funciona muy bien......
Código PHP:
function getIP() { 
    if (isset(
$_SERVER['REMOTE_ADDR'])) { 
       
$ip $_SERVER['REMOTE_ADDR']; 
    }else{ 
       
$ip "unknown"
    }    
    echo 
"Tu IP es: $ip"
}
getIP(); 
suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 10/10/2008, 12:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas para recueprar una IP

Hola luks77,

Si tu lo ves de tu pagina local siempre te va a dar tu IP (127.0.0.1).

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:25.