这篇文章主要介绍了nodejs获取本机内网和外网ip地址的实现代码,需要的朋友可以参考下

实现代码:


var os = require('os');
function getLocalIP() {
  var map = [];
  var ifaces = os.networkInterfaces();
  console.log(ifaces);

  for (var dev in ifaces) {
  if (dev.indexOf('eth0') != -1) {
  var tokens = dev.split(':');
  var dev2 = null;
  if (tokens.length == 2) {
  dev2 = 'eth1:' + tokens[1];
  } else if (tokens.length == 1) {
  dev2 = 'eth1';
  }
  if (null == ifaces[dev2]) {
  continue;
  }

  // 找到eth0和eth1分别的ip
  var ip = null, ip2 = null;
  ifaces[dev].forEach(function(details) {
  if (details.family == 'IPv4') {
  ip = details.address;
  }
  });
  ifaces[dev2].forEach(function(details) {
  if (details.family == 'IPv4') {
  ip2 = details.address;
  }
  });
  if (null == ip || null == ip2) {
  continue;
  }

  // 将记录添加到map中去
  if (ip.indexOf('10.') == 0 ||
  ip.indexOf('172.') == 0 ||
  ip.indexOf('192.') == 0) {
  map.push({"intranet_ip" : ip, "internet_ip" : ip2});
  } else {
  map.push({"intranet_ip" : ip2, "internet_ip" : ip});
  }
  }
  } 
  return map;
}

console.log(getLocalIP());

最新资讯
黑莓信息服务BBM于5月底关闭个人版:企业版不受影响

黑莓信息服务BBM于5月

与消费者版本相比,企业版BBM拥有更多的功能,例如端对端
这些年我们是如何计算地球年龄的? 科普贴请查收

这些年我们是如何计算

“地球的年龄是多少?”在400年前的欧洲,爱尔兰人詹姆斯
天猫精灵:隐私是智能音箱生命线,望3年追亚马逊销量

天猫精灵:隐私是智能

在阿里巴巴人工智能实验室推出第一款天猫精灵两年之后
酷派营收连续4年腰斩 沦为“杂牌机”

酷派营收连续4年腰斩

曾发明“双卡双待”功能的酷派集团,如今几乎从手机市场
Uber无人驾驶部门获软银和丰田投资:金额达10亿美元

Uber无人驾驶部门获软

Uber周四正式宣布,旗下无人驾驶汽车部门刚刚从包括软银
嫦娥六号正在研制 或于2023年发射

嫦娥六号正在研制 或

国家航天局此前透露,我国正在规划嫦娥六号、七号、八号
最新文章
JavaScript解析及序列化JSON的方法实例分析

JavaScript解析及序列

这篇文章主要介绍了JavaScript解析及序列化JSON的方法
如何为vuex实现带参数的 getter和state.commit

如何为vuex实现带参数

这篇文章主要介绍了如何为vuex实现带参数的getter和st
使用VUE+iView+.Net Core上传图片的方法示例

使用VUE+iView+.Net C

这篇文章主要介绍了使用VUE+iView+.Net Core上传图片
JS实现的获取银行卡号归属地及银行卡类型操作示例

JS实现的获取银行卡号

这篇文章主要介绍了JS实现的获取银行卡号归属地及银行
Angular6 用户自定义标签开发的实现方法

Angular6 用户自定义

这篇文章主要介绍了Angular6 用户自定义标签开发的实
React 实现拖拽功能的示例代码

React 实现拖拽功能的

这篇文章主要介绍了React 实现拖拽功能的示例代码,小编