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进程管理模块forever详解
Jun 01 NodeJs
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 NodeJs
nodejs中使用多线程编程的方法实例
Mar 24 NodeJs
使用NodeJs 开发微信公众号(三)微信事件交互实例
Mar 02 NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
Nodejs中crypto模块的安全知识讲解
Jan 03 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs用gulp管理前端文件方法
Jun 24 NodeJs
监控Nodejs的性能实例代码
Jul 02 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
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
php比较相似字符串的方法
2015/06/05 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
js 调用百度分享功能
2017/02/27 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
Python的subprocess模块总结
2014/11/07 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
基于python操作ES实例详解
2019/11/16 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python各种扩展名区别点整理
2020/02/27 Python
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
最新个人职业生涯规划书
2014/01/22 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
大学生创业事迹材料
2014/12/30 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书