无法在ReactJS中获取本地IP地址

时间:2019-11-25 09:38:59

标签: reactjs ip-address

我正在使用ReactJS创建一个网站,我想获取我的本地IP地址。我尝试了几种方法来做到这一点,但是我对结果感到困惑。

首先,我使用npm上的模块为local-ip-url,然后使用localIpUrl()获取我的IP地址并用console.log()显示。如果我使用终端运行此.js文件(例如:node index.js),它将打印出我想要的准确结果(192.168.x.x)。但是,如果我使用浏览器查看控制台日志,则会显示不同的结果127.0.0.0

我尝试了另一种方法,创建自己的函数:

const os = require('os');

function getAvailableIp() {
    let ifaces = os.networkInterfaces();
    let result = {};
    for (let ifname in ifaces) {
        ifaces[ifname].forEach(function (iface) {
            if ('IPv4' !== iface.family || iface.internal !== false) return;
            result[ifname] = iface.address;

        });
    };
    return result;
}

function getIp() {
    let ips = getAvailableIp();
    return ips.WiFi || 'localhost';
}

与上面相同,当我在终端中运行代码时,它显示出了完美的结果。但是在浏览器上,函数os.networkInterfaces()返回一个空对象{}(它的属性是 proto ,我认为这不会引起问题)。因此,它总是返回localhost

Result

任何人都可以解释吗?

0 个答案:

没有答案