Obtener IP de usuario con PHP

Obtener la IP de un usuario usando PHP es una tarea muy sencilla, que queda incluso en una línea de código.

En este post vamos a ver cómo obtener y registrar la IP de alguien que entre a una página con PHP, además de razones por las que en ocasiones esto no funciona.

Obtener IP con PHP

La IP se encuentra en la variable $_SERVER["REMOTE_ADDR"]. No siempre va a estar presente, así que se recomienda manejar los posibles errores con un empty o isset.

Registrar IP: ejemplo

Para registrar la IP se puede usar cualquier almacenamiento, MySQL, SQLite, etcétera. Todo depende.

En este caso lo haré en un archivo. Cada que alguien visite index.php se guardará su ip:

<?php
/**
 * Obtener y guardar la IP de un visitante en PHP
 *
 * @author parzibyte
 */
# Para obtener la fecha correcta hay que poner la zona horaria
date_default_timezone_set("America/Mexico_City");
$fechaYHora = date("Y-m-d H:i:s");
# Si no hay REMOTE_ADDR entonces ponemos "Desconocida"
$ip = empty($_SERVER["REMOTE_ADDR"]) ? "Desconocida" : $_SERVER["REMOTE_ADDR"];
# Formatear mensaje
$mensaje = sprintf("La IP %s accedió en %s%s", $ip, $fechaYHora, PHP_EOL);
# Y adjuntarlo o escribirlo en ips.txt
file_put_contents("ips.txt", $mensaje, FILE_APPEND);
# Ya registramos la ip, ahora seguimos con el flujo normal ;)
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Bienvenido a mi página</title>
</head>
<body>
    Hola mundo
</body>
</html>

Yo lo visité y como estoy en localhost sale la IP ::1, pero si la subimos a nuestro sitio web a través de FTP se registrará la ip real

Registrar accesos con IP

Mira más sobre sprintf aquí.

Recuerda que la IP, así como otros datos, pueden ser guardados en motores de bases de datos o medios más robustos.

Si quieres probar, hazlo de manera local o en un servidor gratuito.

¿Para qué sirve la IP?

Puedes obtener, en muchas ocasiones, la ubicación del usuario. Por ejemplo, existe la página iplocationfinder.com

También sirve para contar cuántos visitantes hay en una página, etcétera.

No confíes en la IP

Si pruebas este script y no hay IP o hay una IP que no corresponde, la razón es muy simple, y es que puede que el usuario navegue a través de un proxy.

Así que yo recomendaría que no lo uses para el mal y no confíes tanto en ella para bloquear/permitir el acceso, pues puede ser cambiada.

Además, no te quiebres la cabeza con métodos más complejos. Al final de todo no hay una forma 100 % segura de obtener la IP.

La seguridad del usuario

Con este ejemplo se demuestra cómo algún atacante podría obtener nuestra IP.

Por eso es que siempre debes tomar medidas al abrir un enlace desconocido, pues no sabes lo que se hace del lado del servidor.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

3 comentarios en “Obtener IP de usuario con PHP”

  1. Pingback: Obtener IP de un usuario a través de un correo electrónico - Parzibyte's blog

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *