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服务器(10):处理上传图片
Dec 18 NodeJs
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 NodeJs
nodejs实现获取某宝商品分类
May 28 NodeJs
NodeJS实现客户端js加密
Jan 09 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
NodeJS使用七牛云存储上传文件的方法
Jul 24 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 NodeJs
Nodejs 数组的队列以及forEach的应用详解
Feb 25 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下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
解析yii数据库的增删查改
2013/06/20 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
Vue实现简易计算器
2020/02/25 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
python实现五子棋小程序
2019/06/18 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
秘书专业自荐信范文
2013/12/26 职场文书
医院护士的求职信
2014/01/03 职场文书
抽样调查项目计划书
2014/04/24 职场文书
社会实践评语
2014/04/28 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
工作报告范文
2019/06/20 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
防止web项目中的SQL注入
2021/12/06 MySQL
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫