Saltar al contenido

Node.js: obtener la IP del cliente

Te doy la bienvenida a proyecto online, en este sitio vas a hallar la respuesta a lo que buscas.

Solución:

req.ip es la forma sencilla de obtener la dirección IP del cliente en Express. Puede ver la lógica que utiliza (que consiste en tomar el primer elemento del array de direcciones proxy req.ipsdonde es array se construye a partir de la x-forwarded-for encabezados) aquí.

// Get client IP address from request object ----------------------
getClientAddress = function (req) ;

Como han señalado otros, debido al uso potencial de proxies, realmente debería usar req.ip y NO use el encabezado X-Forwarded-For como tanta gente recomienda. Siempre que configure correctamente un proxy como proxy de confianza, req.ip siempre devolverá la dirección IP del usuario final.

por ejemplo, si tuviera un proxy que se conectaba desde 8.8.8.8, haría lo siguiente:

var express = require('express');
var app = express();
app.set('trust proxy', '8.8.8.8');

Dado que confía en el proxy, esto ahora haría que lo que se pasa en el encabezado X-Forwarded-For se almacene en req.ippero SOLO si se origina en uno de los servidores proxy de confianza.

Puede encontrar más información sobre el proxy de confianza aquí.

Ahora, como otros han señalado en los comentarios; especialmente cuando se desarrolla localmente, puede obtener la ip en el formato de “::ffff:127.0.0.1”.

Para obtener siempre la dirección IPv4 que tengo:

getClientAddress = function (req) 
    return req.ip.split(":").pop();
;

Reseñas y valoraciones del tutorial

Puedes añadir valor a nuestro contenido participando con tu experiencia en las crónicas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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