node.js - 查找客户端ip express

标签 node.js express

我正在构建一个基本的网络调查,并希望获取客户的 IP 地址以通过网站跟踪他们。我查看了其他一些 stackoverflow 问题并遵循了他们的建议,但得到了一个奇怪的输出。来自以下代码:

index.js:

/*POST users*/
router.post('/users', function(req, res, next) {
    req.body.ip = req.connection.remoteAddress;
    console.log(req.body);
    var user = new User(req.body);

    user.save(function(err,user) {
        if(err) {
            return next(err);
        }

        res.json(user);
    });
});

我得到了这样的 mongo 文档:

"_id" : ObjectId("55cb531714b922ad2478ae9f"),
    "ip" : "::1",
    "responses" : [
        {
            "questionId" : "55c9fbb0401a5ba71ce5181a",
            "optionValue" : 2,
            "_id" : ObjectId("55cb531714b922ad2478aea1")
        },
        {
            "questionId" : "55c9fbe90f6fefa91cb4fc2d",
            "optionValue" : 2,
            "_id" : ObjectId("55cb531714b922ad2478aea0")
        }
    ],
    "__v" : 0

有什么想法为什么我可能会得到这个输出吗?

最佳答案

那是因为 ::1the IPv6 shorthand for localhost .

你的程序看起来运行良好;尝试从远程计算机访问该站点以获得看起来正常的 IP。

关于node.js - 查找客户端ip express ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967822/

相关文章:

javascript - 如何从ejs获取值到node js文件

javascript - 错误: listen EACCES IP:80 with ExpressJS and PM2

node.js - express 3.0 和 Passport 认证

javascript - ngSatellizer 和 Hapi/Bell 不能很好地协同工作。 Promise 不会解决 Twitter

node.js - Swift socket.io 和 Node socket.io 发送二进制文件(图片)

node.js - MongoDB – 如何返回 <field_value> 作为 <field_key> 的文档?

javascript - 如何结合使用 Socket.io 和 Express.JS(使用 Express 应用程序生成器)

node.js - 在 node/express 中启用了 CORS 但得到 "Response to preflight request doesn' t 通过访问控制检查”

javascript - 样式选项未应用于 html-to-img

javascript - 使用 $set 中的变量使用 node.js 更新 mongodb