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实现的一个简单udp广播服务器、客户端
Sep 25 NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
Nodejs中 npm常用命令详解
Jul 04 NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 NodeJs
nodejs中全局变量的实例解析
Mar 07 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 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
什么是MVC,好东西啊
2007/05/03 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
实例讲解Python中的私有属性
2014/08/21 Python
机器学习python实战之决策树
2017/11/01 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
6PM官网:折扣鞋、服装及配饰
2018/08/03 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
2014年妇女工作总结
2014/12/06 职场文书
体育教师个人工作总结
2015/02/09 职场文书
广告业务员岗位职责
2015/02/13 职场文书
借条如何写
2015/05/26 职场文书
关于幸福的感言
2015/08/03 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
java项目构建Gradle的使用教程
2022/03/24 Java/Android
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python