Dưới đây là một giải pháp trong trường hợp bạn đang sử dụng nhanh:
Theo documentation, bạn có thể bật trust proxy
ví dụ rõ ràng của bạn và sau đó req.ip
sẽ được áp dụng với các ip đúng địa chỉ nhà.
Bằng cách cho phép các "tin tưởng proxy" thiết lập qua app.enable ('tin tưởng proxy'), Express sẽ có kiến thức mà nó ngồi đằng sau một proxy và rằng X-Forwarded- * lĩnh vực tiêu đề có thể được tin cậy , nếu không có thể là dễ bị giả mạo.
Bật cài đặt này có một số hiệu ứng tinh tế. Đầu tiên trong số đó là X-Forwarded-Proto có thể được thiết lập bởi proxy ngược lại để nói cho ứng dụng rằng đó là https hoặc đơn giản là http. Giá trị này được phản ánh bởi req.protocol.
Thay đổi thứ hai là giá trị req.ip và req.ips sẽ là được điền bằng danh sách địa chỉ của X-Forwarded-For.
Dưới đây là một ví dụ:
var app = express();
app.enable('trust proxy');
// ...
app.use(function(req, res, next) {
console.log('client ip address:', req.ip);
return next();
});
Nếu bạn đang sử dụng ELB trong chế độ TCP, xem http://stackoverflow.com/q/17981943/201952 – josh3736