Javascript 找到客户';使用ExpressJS应用程序的IP地址

Javascript 找到客户';使用ExpressJS应用程序的IP地址,javascript,node.js,express,user-agent,Javascript,Node.js,Express,User Agent,几天前,我写了一篇日志记录用户代理。虽然我的脚本确实有效,但我找不到一种有效的方法来记录客户端的远程地址 app.js: 所以,如果你curlhttp://localhost:8080它返回curl/7.55.1 但是,我无法实现记录客户端的IP地址。 有什么解决方案吗?请求。连接。远程地址使用此选项。如果您的请求来自本地主机,则IP将显示为::1,但如果您的请求来自不同的IP,则它将显示正确的IP。如果您还想考虑来自代理服务器的请求,请查看此代码: 您是否查看了和。您好,有没有办法从同一个地址

几天前,我写了一篇日志记录用户代理。虽然我的脚本确实有效,但我找不到一种有效的方法来记录客户端的
远程地址

app.js:

所以,如果你
curlhttp://localhost:8080
它返回
curl/7.55.1

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

请求。连接。远程地址使用此选项。如果您的请求来自本地主机,则IP将显示为
::1
,但如果您的请求来自不同的IP,则它将显示正确的IP。如果您还想考虑来自代理服务器的请求,请查看此代码:

您是否查看了和。您好,有没有办法从同一个地址获取ipv4地址?当从移动网络之类的设备请求应用程序时,会按预期返回ipv6地址。将ipv6转换为IPv4不是一个好做法。但是如果你想把它转换成IPv4,这个问题有一些答案。但是,不能保证转换后的IPv4将是IPv6的正确等价物。嗨@Nilupul Sandeepa,有没有更好的方法来替代这种获取客户端IP的方法,因为在我使用这个代码段数月后,我终于在
X-Forwarded-For
类似
curl-H的代码段中看到了一些错误“X-Forwarded-For:example.com,127.0.0.1”localhost:8080
,它告诉我我的ip是
example.com
。这是一个骗局,因此不受欢迎。
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')));
});