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 相关文章推荐
基于 Docker 开发 NodeJS 应用
Jul 30 NodeJs
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
Nodejs学习笔记之Global Objects全局对象
Jan 13 NodeJs
浅谈NodeJS中require路径问题
May 07 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
Nodejs 复制文件/文件夹的方法
Aug 24 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
对mac下nodejs 更新到最新版本的最新方法(推荐)
May 17 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 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和MySQL保存和输出图片
2006/10/09 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
VBScript版代码高亮
2006/06/26 Javascript
mouse_on_title.js
2006/08/25 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
js实现本地时间同步功能
2017/08/26 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
web.py获取上传文件名的正确方法
2014/08/26 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
python圣诞树编写实例详解
2020/02/13 Python
Django REST 异常处理详解
2020/07/15 Python
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
2014年银行员工工作总结
2014/11/12 职场文书
暑期实践个人总结
2015/03/06 职场文书
总账会计岗位职责
2015/04/02 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
董事长年会致辞
2015/07/29 职场文书
如何写好闭幕词
2019/04/02 职场文书
python入门之算法学习
2021/04/22 Python
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang