如何使用Node.js获取公共IPv6

时间:2019-05-15 07:20:09

标签: node.js ipv6

我正在使用nodejs来获得ipv4之类的

app.get('/getip', (req, res) => {
    res.json({
        ip: req.headers['x-forwarded-for']
    });
});

这对于ipv4来说可以正常工作,但我也需要获取ipv6,我如何才能获得路由器系列ipv6的公共ip。

我正在使用节点7.6.0

2 个答案:

答案 0 :(得分:0)

此代码未获取IPv4或IPv6地址。它获取应用程序前面的某些前端服务器提供的X-Forwarded-For标头的值。如果该服务器不接受IPv6连接,则将没有IPv6地址。

答案 1 :(得分:0)

使用此代码获取用户的IPv6远程地址

const express = require("express");
const bodyParser = require("body-parser");
const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.get("/", (req, res) => res.json({
    ip: req.ip || req.connection.remoteAddress || 'null',
}));

const listenServer = () => {
    console.log('App running on');
};

// Use IPv4 address to listen on IPv4
app.listen(3000, '0.0.0.0', listenServer);

// Use IPv6 address to listen on IPv6.
app.listen(3000, '2401:4900:169e:80c3:11e9:63ba:1f81:d224', listenServer);