Cómo Averiguar La Ip Del Cliente

Tabla de contenido:

Cómo Averiguar La Ip Del Cliente
Cómo Averiguar La Ip Del Cliente

Video: Cómo Averiguar La Ip Del Cliente

Video: Cómo Averiguar La Ip Del Cliente
Video: Cómo encontrar la dirección IP de alguien y rastrear esa IP | 2021 2024, Mayo
Anonim

Mediante la dirección IP de un visitante de su sitio, puede averiguar mucho sobre él: país, ciudad, nombre y dirección de correo electrónico del proveedor de Internet, etc. Pero el valor principal es que la IP puede servir como una identificación de visitante para los scripts del lado del servidor. A continuación se describe cómo puede determinar la dirección IP usando PHP.

Cómo averiguar la ip del cliente
Cómo averiguar la ip del cliente

Es necesario

Conocimientos básicos de PHP

Instrucciones

Paso 1

Para extraer la dirección IP de los encabezados enviados al servidor de solicitudes del navegador, use la función getenv. Lee los valores que se le especifican de las variables de entorno. Se utiliza una variable denominada REMOTE_ADDR para almacenar la dirección IP del visitante. Sin embargo, el cliente puede usar un servidor proxy, en cuyo caso la variable contendrá su dirección y no la que usted desea. Puede descubrir que el internauta está utilizando una IP intermedia mirando la variable de entorno llamada HTTP_VIA. Todas las direcciones de los servidores proxy involucrados en la cadena se colocan en ella, separadas por comas. Los servidores intermedios deben colocar la dirección del visitante en una variable llamada HTTP_X_FORWARDED_FOR, pero esto depende completamente de la configuración del proxy. Esto significa que para cubrir tantas posibilidades de determinar la dirección IP como sea posible, debe verificar el contenido de al menos tres variables: REMOTE_ADDR, HTTP_X_FORWARDED_FOR y preferiblemente

Paso 2

Puede combinar la verificación de las tres variables en una línea de código PHP, por ejemplo, así:

$ ipAddr = getenv ('HTTP_CLIENT_IP') o $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') o $ ipAddr = getenv ('REMOTE_ADDR');

Habiendo obtenido el valor de la dirección IP de esta forma, es recomendable despejarla de posibles distorsiones y caracteres innecesarios. Puede usar una expresión regular para esto:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

Paso 3

Queda por combinar ambas líneas de código en una función:

function getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') o $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') o $ ipAddr = getenv ('REMOTE_ADDR');

return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Recomendado: