nodejs获取本机内网和外网ip地址的实现代码


Posted in NodeJs onJune 01, 2014

实现代码:

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());
NodeJs 相关文章推荐
14款NodeJS Web框架推荐
Jul 11 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
CentOS 安装NodeJS V8.0.0的方法
Jun 15 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 NodeJs
浅谈Node的内存泄露问题
May 06 NodeJs
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 #NodeJs
Nodejs进程管理模块forever详解
Jun 01 #NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 #NodeJs
跟我学Nodejs(三)--- Node.js模块
May 25 #NodeJs
跟我学Nodejs(二)--- Node.js事件模块
May 21 #NodeJs
跟我学Nodejs(一)--- Node.js简介及安装开发环境
May 20 #NodeJs
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
Mar 18 #NodeJs
You might like
PHP中的CMS的涵义
2007/03/11 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
15条JavaScript最佳实践小结
2013/08/09 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
javascript每日必学之继承
2016/02/23 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
Node登录权限验证token验证实现的方法示例
2020/05/25 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Python实现Const详解
2015/01/27 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
python操作列表的函数使用代码详解
2017/12/28 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
opencv python如何实现图像二值化
2020/02/03 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
家长对老师的感言
2014/03/11 职场文书
超市开店计划书
2014/04/26 职场文书
地球一小时宣传标语
2014/06/24 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
工程部部长岗位职责
2015/02/12 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书