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 相关文章推荐
基于html5和nodejs相结合实现websocket即使通讯
Nov 19 NodeJs
基于Nodejs利用socket.io实现多人聊天室
Feb 22 NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 NodeJs
nodejs异步编程基础之回调函数用法分析
Dec 26 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
2013/11/27 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
DWZ刷新dialog解决方法
2013/03/03 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
javascript数据类型详解
2017/02/07 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
金融专业毕业生推荐信
2013/11/26 职场文书
安全生产月标语
2014/10/07 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
党员活动总结
2015/02/04 职场文书
2015年少先队活动总结
2015/03/25 职场文书
员工开除通知书
2015/04/25 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
卫生主题班会
2015/08/14 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL