Node.js:OS模塊


os模塊,可以用來獲取操作系統相關的信息和機器物理信息,例如操作系統平台,內核,cpu架構,內存,cpu,網卡等信息。
使用如下所示:

const os = require('os');

var dealTime = (seconds)=>{
	var seconds = seconds|0;
	var day = (seconds/(3600*24))|0;
	var hours = ((seconds-day*3600)/3600)|0;
	var minutes = ((seconds-day*3600*24-hours*3600)/60)|0;
	var second = seconds%60;
	(day<10)&&(day='0'+day);
	(hours<10)&&(hours='0'+hours);
	(minutes<10)&&(minutes='0'+minutes);
	(second<10)&&(second='0'+second);
	return [day,hours,minutes,second].join(':');
};

var dealMem = (mem)=>{
	var G = 0,
		M = 0,
		KB = 0;
	(mem>(1<<30))&&(G=(mem/(1<<30)).toFixed(2));
	(mem>(1<<20))&&(mem<(1<<30))&&(M=(mem/(1<<20)).toFixed(2));
	(mem>(1<<10))&&(mem>(1<<20))&&(KB=(mem/(1<<10)).toFixed(2));
	return G>0?G+'G':M>0?M+'M':KB>0?KB+'KB':mem+'B';
};

//cpu架構
const arch = os.arch();
console.log("cpu架構:"+arch);

//操作系統內核
const kernel = os.type();
console.log("操作系統內核:"+kernel);

//操作系統平台
const pf = os.platform();
console.log("平台:"+pf);

//系統開機時間
const uptime = os.uptime();
console.log("開機時間:"+dealTime(uptime));

//主機名
const hn = os.hostname();
console.log("主機名:"+hn);

//主目錄
const hdir = os.homedir();
console.log("主目錄:"+hdir);


//內存
const totalMem = os.totalmem();
const freeMem = os.freemem();
console.log("內存大小:"+dealMem(totalMem)+' 空閑內存:'+dealMem(freeMem));

//cpu
const cpus = os.cpus();
console.log('*****cpu信息*******');
cpus.forEach((cpu,idx,arr)=>{
	var times = cpu.times;
	console.log(`cpu${idx}:`);
	console.log(`型號:${cpu.model}`);
	console.log(`頻率:${cpu.speed}MHz`);
	console.log(`使用率:${((1-times.idle/(times.idle+times.user+times.nice+times.sys+times.irq))*100).toFixed(2)}%`);
});

//網卡
console.log('*****網卡信息*******');
const networksObj = os.networkInterfaces();
for(let nw in networksObj){
	let objArr = networksObj[nw];
	console.log(`\r\n${nw}:`);
	objArr.forEach((obj,idx,arr)=>{
		console.log(`地址:${obj.address}`);
		console.log(`掩碼:${obj.netmask}`);
		console.log(`物理地址:${obj.mac}`);
		console.log(`協議族:${obj.family}`);
	});
}

執行結果如下:

E:\developmentdocument\nodejsdemo>node os-example.js
cpu架構:x64
操作系統內核:Windows_NT
平台:win32
開機時間:00:09:18:08
主機名:test-PC
主目錄:C:\Users\test
內存大小:3.90G 空閑內存:1.42G
cpu信息**
cpu0:
型號:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz
頻率:3192MHz
使用率:7.32%
cpu1:
型號:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz
頻率:3192MHz
使用率:5.80%
cpu2:
型號:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz
頻率:3192MHz
使用率:6.31%
cpu3:
型號:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz
頻率:3192MHz
使用率:6.37%
網卡信息**

本地連接:
地址:fe80::c409:72be:75f8:2d01
掩碼:ffff:ffff:ffff:ffff::
物理地址:40:8d:5c:b8:da:df
協議族:IPv6
地址:1.1.1.69
掩碼:255.255.255.0
物理地址:40:8d:5c:b8:da:df
協議族:IPv4

Loopback Pseudo-Interface 1:
地址:::1
掩碼:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
物理地址:00:00:00:00:00:00
協議族:IPv6
地址:127.0.0.1
掩碼:255.0.0.0
物理地址:00:00:00:00:00:00
協議族:IPv4

6TO4 Adapter:
地址:2002:101:145::101:145
掩碼:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
物理地址:00:00:00:00:00:00
協議族:IPv6

E:\developmentdocument\nodejsdemo>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM