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

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.
Pingback: Obtener IP de un usuario a través de un correo electrónico - Parzibyte's blog
¿Para almacenar la ip en un tabla de mysql como se haría?
Si tiene preguntas puede hacerlas en https://parzibyte.me/#contacto
No respondo dudas por este medio