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 相关文章推荐
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
Sep 26 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
Nodejs中Express 常用中间件 body-parser 实现解析
May 22 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
nodejs实现爬取网站图片功能
Dec 14 NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 NodeJs
详解Nodejs内存治理
May 13 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
Nodejs实现用户注册功能
Apr 14 NodeJs
nodejs脚本centos开机启动实操方法
Mar 04 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 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源码之 ext/mysql扩展部分
2009/07/17 PHP
php算开始时间到过期时间的相隔的天数
2011/01/12 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
php中引用符号(&)的使用详细介绍
2016/12/06 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
javascript知识点收藏
2007/02/22 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
在Python的Django框架中加载模版的方法
2015/07/16 Python
详解python中asyncio模块
2018/03/03 Python
python中reader的next用法
2018/07/24 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
Django保护敏感信息的方法示例
2019/05/09 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
逻辑链路控制协议
2016/10/01 面试题
百度JavaScript笔试题
2015/01/15 面试题
体育教师工作总结的自我评价
2013/10/10 职场文书
公司接待方案
2014/03/08 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书