这篇文章主要介绍了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());

最新资讯
王贻芳:捐出未来科学大奖奖金建立大型对撞机基金

王贻芳:捐出未来科学大

2019未来科学大奖颁奖典礼今日在北京中国大饭店举行。
张磊:我们要在年轻人心中撒下“异想天开”的种子

张磊:我们要在年轻人心

11月17日下午消息,在2019未来科学大奖颁奖礼现场,未来
马云举办非洲版“赢在中国”:50多国家1万企业家报名

马云举办非洲版“赢在

当地时间11月16日晚间,马云非洲创业者大赛在加纳举办决
YC中国路演日陆奇再谈创业:需要更为技术驱动的生态

YC中国路演日陆奇再谈

YC中国今日举办首届路演日,其创始人兼CEO陆奇做开场演
比尔·盖茨超越贝佐斯 时隔两年重新登顶世界首富

比尔·盖茨超越贝佐斯

外媒近日报道称,美国微软公司人比尔·盖茨目前净资产达
CIRP报告称美国iPhone用户增长速度陷入停滞

CIRP报告称美国iPhone

消费者情报研究合作伙伴(CIRP)在一份有问题的衍生分析
最新文章
微信小程序调用天气接口并且渲染在页面过程详解

微信小程序调用天气接

这篇文章主要介绍了微信小程序调用天气接口并且渲染在
Electron + vue 打包桌面操作流程详解

Electron + vue 打包

这篇文章主要介绍了Electron + vue 打包桌面操作流程,
前端Vue项目详解--初始化及导航栏

前端Vue项目详解--初

这篇文章主要介绍了前端Vue项目详解--初始化及导航栏,
ES6 Object方法扩展的应用实例分析

ES6 Object方法扩展的

这篇文章主要介绍了ES6 Object方法扩展的应用,结合实
JS实现给数组对象排序的方法分析

JS实现给数组对象排序

这篇文章主要介绍了JS实现给数组对象排序的方法,结合
基于vue+axios+lrz.js微信端图片压缩上传方法

基于vue+axios+lrz.js

这篇文章主要介绍了基于vue+axios+lrz.js微信端图片压