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学习笔记之Global Objects全局对象
Jan 13 NodeJs
nodejs中全局变量的实例解析
Mar 07 NodeJs
Nodejs 获取时间加手机标识的32位标识实现代码
Mar 07 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
nodejs批量下载图片的实现方法
May 19 NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
Sep 19 NodeJs
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
May 15 NodeJs
nodejs的路径问题的解决
Jun 30 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 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中实现中文字符进制转换原理分析
2011/12/06 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
php数组添加元素方法小结
2014/12/20 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python中sets模块的用法实例
2014/09/30 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
Html5页面二次分享的实现
2018/07/30 HTML / CSS
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
工业设计专业推荐信
2013/10/29 职场文书
农民入党思想汇报
2014/01/03 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2014年转正工作总结
2014/11/08 职场文书
个人更名证明
2015/06/23 职场文书
基于Python实现股票收益率分析
2022/04/02 Python