Cómo obtener la dirección IP de un Visitante en PHP o Node.js

18/06/2024 | Node.js, PHP | 0 comentarios

Explora métodos para obtener la dirección IP de visitantes en tu sitio web utilizando varios lenguajes de programación y prácticas recomendadas de seguridad.


La dirección IP de un visitante es un dato importar en muchas aplicaciones web, se usa para análisis de tráfico, en seguridad y personalización de contenido. Veamos cómo obtener la dirección IP de un visitante utilizando diferentes lenguajes y tecnologías del lado del servidor.

Dirección IP

Una dirección IP es un identificador único asignado a cada dispositivo conectado a una red. Las direcciones IP están compuesta de 4 números (0-255) separados por punto, por ejemplo: 192.168.1.1.

Obtener la dirección IP

A continuación, veremos cómo obtener la dirección IP de un visitante en varios lenguajes:

PHP

En PHP, se puede obtener la dirección IP del cliente utilizando la variable global $_SERVER de la siguiente manera:


<?php
function getClientIP() {
    $ip = '';
    if (isset($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip= $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED'];
    } elseif (isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
    } elseif (isset($_SERVER['HTTP_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_FORWARDED_FOR'];
    } elseif (isset($_SERVER['HTTP_FORWARDED'])) {
        $ip = $_SERVER['HTTP_FORWARDED'];
    } elseif (isset($_SERVER['REMOTE_ADDR'])) {
        $ip = $_SERVER['REMOTE_ADDR'];
    }

    return $ip;
}

echo 'Client IP: ' . getClientIP();

Node.js

En una aplicación Node.js utilizando Express, la dirección IP del cliente se puede obtener a través del objeto req (request) de la siguiente manera:


const express = require('express');
const app = express();

app.get('/', (req, res) => {
    const ip = req.headers['x-forwarded-for'] || req.ip;
    res.send(`Client IP: ${ip}`);
});

app.listen(3000, () => {
    console.log(`Start project on http://localhost:3000`)
})

Consideraciones

  • Encabezados Proxy: En muchos entornos de producción, las solicitudes pueden pasar por varios proxies o balanceadores de carga, estos añaden encabezados como X-Forwarded-For. Asegúrate de considerar estos encabezados.
  • IP Spoofing: La dirección IP puede ser falsificada. No confíes en la IP del cliente para acciones críticas de seguridad sin validación adicional.
  • Privacidad: La recolección y almacenamiento de direcciones IP pueden tener implicaciones de privacidad. Asegúrate de cumplir con las leyes y regulaciones sobre la privacidad de los datos.

Conclusiones

Obtener la dirección IP de un visitante es una tarea común y sencilla en desarrollo web. La implementación puede variar dependiendo del lenguaje y la plataforma que utilices, pero los principios básicos son los mismos.

Referencias

Envíar Comentario

En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas <pre></pre>