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 win7下安装方法
May 24 NodeJs
windows下安装nodejs及框架express
Aug 07 NodeJs
浅谈Nodejs观察者模式
Oct 13 NodeJs
Nodejs Stream 数据流使用手册
Apr 17 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
详解NodeJS Https HSM双向认证实现
Mar 12 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 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
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
python使用nntp读取新闻组内容的方法
2015/05/08 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
python实现俄罗斯方块
2018/06/26 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
Python File(文件) 方法整理
2019/02/18 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
苹果Mac升级:MacSales.com
2017/11/20 全球购物
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
公司综合部的成员自我评价分享
2013/11/05 职场文书
法定代表人授权委托书
2014/04/04 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
廉政承诺书范文
2015/04/28 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫