如何从控制器内确定给定请求的IP地址?例如(在快递中):

app.post('/get/ip/address', function (req, res) {
    // need access to IP address here
})

当前回答

我在nginx后面使用express和

req.headers.origin

对我有用吗

其他回答

我使用这个ipv4格式

req.connection.remoteAddress.split(':').slice(-1)[0]

Var ipaddress = (req。标题(“x-forwarded-for”)| | req.connection.remoteAddress | | req.socket.remoteAddress | | req.connection.socket.remoteAddress) .split (", ") [0];

也有同样的问题…im也是新的javascript,但我解决了这个与req.connection.remoteAddress;这给了我IP地址(但在ipv6格式::ffff.192.168.0.101),然后.slice删除前7位数字。

var ip = req.connection.remoteAddress;

if (ip.length < 15) 
{   
   ip = ip;
}
else
{
   var nyIP = ip.slice(7);
   ip = nyIP;
}

获取ip地址有两种方式:

让IP = req.ip 让ip = req.connection.remoteAddress;

但上述方法存在一个问题。

如果你在Nginx或任何代理程序后面运行你的应用程序,每个IP地址将是127.0.0.1。

因此,获取user的ip地址的最佳方案是:-

let ip = req.header('x-forwarded-for') || req.connection.remoteAddress;

如果你使用express.js,

app.post('/get/ip/address', function (req, res) {
      res.send(req.ip);
})