我正在使用弹性beanstalk 和 ngnix 代理服务器。我的应用程序代码在node.js express 框架上。我试图通过以下代码访问客户端IP
var ip = event.headers['x-forwarded-for'] ||
event.connection.remoteAddress ||
event.socket.remoteAddress ||
event.connection.socket.remoteAddress;
但我总是为所有传入请求获取相同的客户端IP。我认为这将是代理服务器的IP地址。
如何从我的应用程序访问真实客户端地址???
答案 0 :(得分:1)
我推迟使用@austince,客户端IP将成为Elastic Beanstalk列表中的 第一 条目。
示例:
X-Forwarded-For:182.12.12.123,78.13.13.123
万一有人来寻找示例代码,这就是我在项目中使用的代码。
const _ = require('lodash');
const ipAddress = _.split(req.header('X-Forwarded-For'), ',');
ipadd = _.trim(_.first(ipAddress));
答案 1 :(得分:0)
X-Forwarded-For 有效,但有时是一个已经被击中的IP列表。客户端IP应该是 Elastic Beanstalk列表中的最后一个条目。
<强>实施例强>:
X-Forwarded-For:ip-address-1,ip-address-2,client-ip-address