Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/10/2010, 14:09
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Obtener la IP real del visitante, esta es la mejor forma?

Cita:
Iniciado por abimaelrc Ver Mensaje
En realidad, obtener la ip real del visitante, tiene sus fallos. Hay servidores que sirven como proxy y algunos de ellos reportan el IP que tenía anteriormente y otros no. Por lo que verificar el ip, solo es cuestión de usar algún código sencillo como por ejemplo
Código PHP:
Ver original
  1. <?php
  2.     function get_real_ip()
  3.     {
  4.  
  5.         if (isset($_SERVER["HTTP_CLIENT_IP"]))
  6.         {
  7.             return $_SERVER["HTTP_CLIENT_IP"];
  8.         }
  9.         elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
  10.         {
  11.             return $_SERVER["HTTP_X_FORWARDED_FOR"];
  12.         }
  13.         elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
  14.         {
  15.             return $_SERVER["HTTP_X_FORWARDED"];
  16.         }
  17.         elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
  18.         {
  19.             return $_SERVER["HTTP_FORWARDED_FOR"];
  20.         }
  21.         elseif (isset($_SERVER["HTTP_FORWARDED"]))
  22.         {
  23.             return $_SERVER["HTTP_FORWARDED"];
  24.         }
  25.         else
  26.         {
  27.             return $_SERVER["REMOTE_ADDR"];
  28.         }
  29.  
  30.     }
  31.     echo get_real_ip();
El código es tomado de http://www.vision.to/get-a-real-ip-vs-proxy.php
Si deseas usar el tuyo, también lo puedes hacer. Pero debes saber que no necesariamente vas a obtener la IP real del cliente, por lo que te indiqué. Y leyendo un tema por ahí, indican que no uses HTTP_X_FORWARDED_FOR porque una persona puede hacer un "spoofed", engañando al sistema y por lo tanto entrar como si fuera por ejemplo el servidor tuyo.
Entonces si quisiera hacer por ejemplo que solo se ejecute un script si la llamada procede de una determinada página y tiene la IP del servidor (Ej. vía cron) debería fiarme solo de $_SERVER["REMOTE_ADDR"] ?

Muchas gracias de antemano!