Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/11/2009, 15:29
Avatar de Null_
Null_
 
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 15 años, 6 meses
Puntos: 30
Respuesta: Como saber la ip de quin visita mi pagina

El problema de esa función es que cuando tienes un nombre de dominio y un servidor independiente, siempre imprime la IP del dominio. Bueno eso me pasó a mi, no se a quien más, pero en un blog que no recuerdo encontre una larga función que eliminaba posibles problemas con la obtención de la IP como los proxys.

Acá dejo el código fuente que hasta el día de hoy utilizo, no recuerdo el blog porque fue hace mucho tiempo.


Código PHP:
<?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" );
      
      
$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) )
         {
            
$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;
   
}

echo 
"Su Inúmero IP es: ".getRealIP();

?>
Saludos!
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com