簡體   English   中英

如何從部署在 AWS Elastic beanstalk 上的 node.js express 應用程序獲取客戶端 ip?

[英]How to get client ip from node.js express application deployed on AWS Elastic beanstalk?

我正在將彈性 beantalkngnix代理服務器一起使用。 我的應用程序代碼在 node.js express框架上。 我正在嘗試通過以下代碼訪問客戶端 IP

 var ip = event.headers['x-forwarded-for'] || event.connection.remoteAddress || event.socket.remoteAddress || event.connection.socket.remoteAddress;

但我總是為所有傳入請求獲得相同的客戶端 IP。 我認為這將是代理服務器的 IP 地址。

如何從我的應用程序訪問真實的客戶端地址???

我推遲了@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));

這是來自 AWS 的指南: https : //docs.aws.amazon.com/elasticloadbalancing/latest/classic/x-forwarded-headers.html#x-forwarded-for

X-Forwarded-For有效,但有時一路上被擊中的 IP 列表 客戶端 IP 應該是 Elastic Beanstalk 列表中的第一個條目

例如

X-Forwarded-For:client-ip-address、ip-address-1、ip-address-2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM