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框架Express的模板视图机制分析
Jul 19 NodeJs
Nodejs的express使用教程
Nov 23 NodeJs
nodejs redis 发布订阅机制封装实现方法及实例代码
Dec 15 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
nodejs前端自动化构建环境的搭建
Jul 26 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
nodejs 递归拷贝、读取目录下所有文件和目录
Jul 18 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
js实现交通灯效果
2017/01/13 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
九年级历史教学反思
2014/01/27 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
Django使用echarts进行可视化展示的实践
2021/06/10 Python
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫