使用 ExpressJS 应用程序查找客户端的 IP 地址

问题描述

几天前,我写了一个 nodejs script 来记录用户代理。虽然我的脚本确实有效,但我找不到记录客户端 REMOTE_ADDRESS 的有效方法

app.js:

var express = require('express'),http = require('http'),app = express();

http.createServer(app).listen(8080);

app.get('/',function(req,res) {
    res.send(JSON.stringify(req.get('user-agent')))
    console.log(JSON.stringify(req.get('user-agent')));
});

因此,如果您 curl http://localhost:8080,它将返回 curl/7.55.1

但是,我无法实现记录客户端的 IP 地址。 有什么解决办法吗?

解决方法

request.connection.remoteAddress 使用这个。如果您的请求来自本地主机,IP 将显示为 ::1 但如果您的请求来自不同的 IP,那么它将显示正确的 IP。如果您还想考虑来自代理服务器的请求,请查看以下代码: IP Address Code Snippet