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加密Crypto的实例代码
Jul 07 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
NodeJS使用七牛云存储上传文件的方法
Jul 24 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
NodeJs入门教程之定时器和队列
Mar 08 NodeJs
使用nodejs分离html文件里的js和css详解
Apr 12 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 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之第七天
2006/10/09 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
php eval函数一句话木马代码
2015/05/21 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
本地存储localStorage用法详解
2017/07/31 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
Python splitlines使用技巧
2008/09/06 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
Python中psutil的介绍与用法
2019/05/02 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
小学教育毕业生自荐信
2013/11/18 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
手机销售员岗位职责
2015/04/11 职场文书
酒店宣传语大全
2015/07/13 职场文书
工作后的感想
2015/08/07 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
python 中[0]*2与0*2的区别说明
2021/05/10 Python
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python