获取计算机Node.JS的IP地址

时间:2018-11-24 00:46:06

标签: javascript node.js ip node-modules

我有一个问题,但是如何获取在Node.JS上运行我的应用程序的计算机的IP地址?重要的是,IP地址一定不能是本地的(127.0.0.1或192.168.1.1)。预先谢谢你

1 个答案:

答案 0 :(得分:0)

您可以使用os.networkInterfaces()获取所有IP地址信息,并排除本地地址。

根据Node.js document

  

os.networkInterfaces()方法返回一个对象,该对象仅包含已分配了网络地址的网络接口。

     

返回的对象上的每个键都标识一个网络接口。关联的值是一个对象数组,每个对象描述一个分配的网络地址。

这是一个代码示例:

'use strict';

const os = require('os');

let networkInterfaces = os.networkInterfaces();

let nonLocalInterfaces = {};
for (let inet in networkInterfaces) {
  let addresses = networkInterfaces[inet];
  for (let i=0; i<addresses.length; i++) {
    let address = addresses[i];
    if (!address.internal) {
      if (!nonLocalInterfaces[inet]) {
        nonLocalInterfaces[inet] = [];
      }
      nonLocalInterfaces[inet].push(address);
    }
  }
}

console.log(nonLocalInterfaces);