OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

Node.JS如何查看本地MAC/IP地址、计算cpu使用率和内存容量


分享到


分类 JS学习   关键字 Node.JS   发布 ourjs  1516256822967
注意 转载须保留原文链接,译文链接,作者译者等信息。  
Node.JS的OS提供了一系统CPU/内存/网络相关的接口,通过它我们可以查看本地的网络配置。使用起来非常简单

本地MAC和IP地址


var os = require('os')
console.log(os.networkInterfaces())

输出结果:

{
  lo: [
    {
      address: '127.0.0.1',
      netmask: '255.0.0.0',
      family: 'IPv4',
      mac: '00:00:00:00:00:00',
      internal: true,
      cidr: '127.0.0.1/8'
    },
    {
      address: '::1',
      netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
      family: 'IPv6',
      mac: '00:00:00:00:00:00',
      internal: true,
      cidr: '::1/128'
    }
  ],
  eth0: [
    {
      address: '192.168.1.108',
      netmask: '255.255.255.0',
      family: 'IPv4',
      mac: '01:02:03:0a:0b:0c',
      internal: false,
      cidr: '192.168.1.108/24'
    }
  ]
}

内存的容量和已用内存

var freemem   = os.freemem()
var totalmem  = os.totalmem()
var usedmem   = totalmem - freemem

CPU情况和使用率


cpus返回CPU情况,返回的是一个数组,有多少个核心就有多少个元素。

var cpus = os.cpus()
console.log(cpus)
结果:

[
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 252020,
      nice: 0,
      sys: 30340,
      idle: 1070356870,
      irq: 0
    }    
  }
  ...
]

使用率略为复杂,有一个loadavg方法,计算过去十几分钟的平均使用率,但目前并不支持Windows

os.loadavg()

其实我们可以用之前的cpus()方法来计算出,即通过idle和总时间的比值得出时时使用率

cpuIAverage = function(i) {
  var cpu, cpus, idle, len, total, totalIdle, totalTick, type;
  totalIdle = 0;
  totalTick = 0;
  cpus = os.cpus();
  cpu = cpus[i];
  for (type in cpu.times) {
    totalTick += cpu.times[type];
  }
  totalIdle += cpu.times.idle;
  idle = totalIdle / cpus.length;
  total = totalTick / cpus.length;
  return {
    idle: idle,
    total: total
  };
};


更多计算使用率的函数: https://gist.github.com/bag-man/5570809
社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. redis、memcache和mongodb各自的优缺点是什么,怎么选择呢?
  2. Node.JS 8.x和9.x新特性:N-API,NPM5,ERROR CODE
  3. 比特币最近为何会暴跌?大资金如何靠做空比特币获利
  4. 移动端开发框架哪个好?jQuery/Vue/AngularJS有哪些区别和优缺点?
  5. 红衣教主周鸿祎会不会成为中国首富
  6. Node.JS中UDP打洞穿透内网路由,架设内网服务器技术详解及源码
  7. OnceAir顽石企业私有云网盘使用介绍
  8. 马化腾创办腾讯的第一桶金是怎么来的:炒股10万炒到70万
  9. Node.JS读取中文TXT编码文件显示乱码问题解决方案
  10. node.js用fs.rename强制重命名或移动文件夹
  11. 用 OnceAir 搭建个人Git/Svn/照片备份服务器,每年电费7块钱

 相关阅读 - JS学习
  1. JavaScript数组从头开始的位置插入新元素或删除第一个元素
  2. Node.JS中UDP打洞穿透内网路由,架设内网服务器技术详解及源码
  3. 移动端开发框架哪个好?jQuery/Vue/AngularJS有哪些区别和优缺点?
  4. Node.JS 8.x和9.x新特性:N-API,NPM5,ERROR CODE
  5. Node.JS读取中文TXT编码文件显示乱码问题解决方案
  6. Node.JS与USB接口通信:检测U盘/移动硬盘插拔事件和发送接数据
  7. NodeJS动态传参特性:不定个数参数的省略,默认值与解构
  8. 从 Node 到 Go:一个粗略的比较—GO平均性能比JavaScript快十几倍
  9. Node.JS中如何快速扫描端口并发现局域网内的Web服务器地址(80)
  10. Node.JS循环递归复制文件夹目录及其子文件夹下的所有文件

 关键字 - Node.JS
  1. 提高NodeJS网站的安全性:Web服务器防黑客攻击技巧
  2. Node.JS用Socket实现FTP Server服务器和Client客户端
  3. [译]Node.js 框架比较: Express vs. Koa vs. Hapi
  4. Express入门教程:一个简单的博客
  5. 是什么让Node.js比Java更快?为什么NodeJS这么快?
  6. 使用Node.JS批量查找替换目录下文本文件中图片地址内容
  7. 判断Node.JS TCP Socket当前连接状态
  8. Node.JS进程间通讯的几种方法:Redis Publish/Subscribe 和 UDP Socket
  9. Node.JS命令行或批处理中更改Linux用户密码
  10. Node.JS用Path将相对路径转为绝对路径

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号