Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Obtener IP real del cliente con PHP
Lenguaje de programación PHP

Os mostramos una función que intenta obtener la IP real del cliente que accede a la web. No siempre funciona puesto que depende del proveedor de servicios de Internet que tenga y del tipo de seguridad (router, cortafuegos, etc.).


function obtenerIPCliente()
{
  if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
  {
    $ipCliente =
    ( !empty($_SERVER['REMOTE_ADDR']) ) ?
      $_SERVER['REMOTE_ADDR']
        :
         ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
           $_ENV['REMOTE_ADDR']
            :
             "unknown" );
   
      $entradasL = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);	  
   
      reset($entradasL);
      while (list(, $entradaActual) = each($entradasL))
      {	    
         $entradaActual = trim($entradaActual);
         if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entradaActual, $listaIPs) )
         {  
            $ipPrivada = array(
                  '/^0\./',
                  '/^127\.0\.0\.1/',
                  '/^192\.168\..*/',
                  '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
                  '/^10\..*/');
   
            $ipEncontrada = preg_replace($ipPrivada, $ipCliente, $listaIPs[1]);
   
            if ($ipCliente != $ipEncontrada)
            {
               $ipCliente = $ipEncontrada;
               break;
           }
        }
     }
  }
  else
  {
      $ipCliente =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );
  }
   
  return $ipCliente;   
}
Para probar esta función:
echo obtenerIPCliente();




Publicado el: 2009-08-28

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A