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使用formidable实现文件上传
Oct 27 NodeJs
解析NodeJs的调试方法
Dec 11 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
nodejs搭建本地http服务器教程
Mar 13 NodeJs
Nodejs中Express 常用中间件 body-parser 实现解析
May 22 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
详解Nodejs内存治理
May 13 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
NodeJS 实现多语言的示例代码
Sep 11 NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 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
德生PL990的分析评价
2021/03/02 无线电
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
PHP xpath()函数讲解
2019/02/11 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
opencv python图像梯度实例详解
2020/02/04 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
厨师岗位职责
2013/11/12 职场文书
电气个人求职信范文
2014/02/04 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL