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.ips
donde 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.ip
pero 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.