La dirección IP (IP Address) del cliente nos permite conocer exactamente de donde es el usuario. Es útil por ejemplo si deseamos segmentar la publicidad por país o también para prevenir el Spam pues hay direcciones IP conocidas desde donde se hace el envío del spam.
Forma tradicional del Obtener el IP
Para obtener el IP comúnmente se utiliza la variable global $_SERVER con la propiedad REMOTE_ADDR, entonces podríamos imprimir el IP de la siguiente forma:
-
echo $_SERVER[‘REMOTE_ADDR’]; // muestra: 200.49.6.149
Pero que pasa si el usuario esta accediendo desde un proxy o desde un IP compartido, entonces este valor del IP obtenido no será el correcto. Para resolver este dilema hay propiedades adicionales que podemos utilizar:
-
// IP compartido
-
echo “IP Share: ” . $_SERVER[‘HTTP_CLIENT_IP’] . “<br />”;
-
// IP Proxy
-
echo “IP Proxy: ” . $_SERVER[‘HTTP_X_FORWARDED_FOR’] . “<br />”;
-
// IP Acceso
-
echo “IP Access: ” . $_SERVER[‘REMOTE_ADDR’] . “<br />”;
Obtener el IP real del usuario
Entonces basado en estas tres formas de obtener el IP del cliente crearemos una función llamada getRealIP el cual devolverá el IP del cliente.
-
function getRealIP() {
-
if (!empty($_SERVER[‘HTTP_CLIENT_IP’]))
-
return $_SERVER[‘HTTP_CLIENT_IP’];
-
if (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’]))
-
return $_SERVER[‘HTTP_X_FORWARDED_FOR’];
-
return $_SERVER[‘REMOTE_ADDR’];
-
}
La función verifica si existen las primeras variables del servidor y según el resultado nos devuelve el valor del IP. Una vez obtenida este IP lo podemos utilizar para verificarlo con Akismet para saber si es un IP desde donde se hace spam por ejemplo.


