Node.js學習之路19——punycode模塊與os模塊

1. punycode

  • punycode模塊轉換爲punycode編碼

punycode模塊內部使用punycode.js類庫,以將域名從地方語言所採用的各類編碼轉換爲可用於DNS服務器的punycode編碼,由於操做系統的核心都是英文,DNS服務器的解析也是由英文代碼交換,因此DNS服務器並不支持直接的使用地方語言的域名解析,全部地方語言域名的解析都須要轉成punycode編碼,而後由DNS服務器解析punycode編碼.javascript

  • encode(string),將一個Unicode編碼字符串轉換爲一個punycode編碼字符串
  • decode(string),將一個punycode編碼字符串轉成一個Unicode編碼字符串
  • toASCII(domain),用於將一個Unicode編碼格式的域名轉換爲一個punycode編碼格式的域名,該方法只能轉換地方語言域名,不轉換英文域名
  • toUnicode(domain),用於將一個punycode編碼格式的域名轉換爲Unicode編碼格式的域名,該方法只能轉換地方語言域名,不轉換英文域名
  • ucs2.encode(codePoints),用於將一個UCS-2編碼數組轉換成一個字符串
  • ucs2.decode(string),用於將一個字符串轉換爲一個UCS-2編碼數組
  • punycode.version,顯示punycode.js類庫的版本號
const punycode = require('punycode');
console.log(punycode.encode('你好'));// 6qq79v
console.log(punycode.decode('6qq79v'));// 你好
console.log(punycode.toASCII('www.你好.com'));// www.xn--6qq79v.com
console.log(punycode.toUnicode('www.xn--6qq79v.com'));// www.你好.com
console.log(punycode.ucs2.encode([97, 98, 99])); // abc
console.log(punycode.ucs2.encode([0x1D306])); // \uD834\uDF06
console.log(punycode.ucs2.decode('abc')); // [ 97, 98, 99 ]
console.log(punycode.ucs2.decode('\uD834\uDF06')); // [ 119558 ]

2. os模塊

使用os模塊獲取操做系統信息java

  • os.tmpdir(),獲取操做系統中默認的用於存放臨時文件的目錄
  • os.endianness(),獲取CPU的字節序,返回的值多是BELE
  • os.hostname(),獲取計算機名
  • os.type(),獲取操做系統類型
  • os.platform(),獲取操做系統平臺
  • os.arch(),獲取CPU架構
  • os.release(),獲取操做系統版本號
  • os.uptime(),獲取系統當前的運行時間,單位爲秒
  • os.loadavg(),返回一個數組,其中存放了1分鐘,5分鐘,15分鐘的系統平均負載
  • os.totalmem(),返回系統的總內存量,單位爲字節
  • os.freemem(),返回系統的空閒內存量
  • os.cpus(),返回一個數組,存放了CPU內核的各類信息,包括CPU規格,運行速度(單位是MHz)及運行時間信息
  • os.networkInterfaces(),返回一個數組,存放了系統中全部網絡接口
  • os.EOL,定義一個EOL常量,常量值爲操做系統中使用的換行符\r\n
const os = require('os');
console.log(os.tmpdir());           // /tmp
console.log(os.endianness());       // LE
console.log(os.hostname());         // Homer
console.log(os.type());             // Linux
console.log(os.platform());         // linux
console.log(os.arch());             // x64
console.log(os.release());          // 3.10.0-693.17.1.el7.x86_64
console.log(os.uptime());           // 108
console.log(os.loadavg());          // [ 2.48583984375, 1.01318359375, 0.3740234375 ]
console.log(os.totalmem());         // 1910771712
console.log(os.freemem());          // 76935168
console.log(os.cpus());
/**
* [ { model: 'Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz',
*       speed: 2401,
*       times: { user: 194900, nice: 21800, sys: 210000, idle: 477900, irq: 0 } },
*     { model: 'Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz',
*       speed: 2401,
*       times: { user: 157300, nice: 19400, sys: 205400, idle: 543800, irq: 0 } },
*     { model: 'Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz',
*       speed: 2401,
*       times: { user: 149700, nice: 4200, sys: 212600, idle: 548500, irq: 0 } },
*     { model: 'Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz',
*       speed: 2401,
*       times: { user: 156200, nice: 2600, sys: 213100, idle: 501300, irq: 0 } } ]
* **/
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 },
*        { address: '::1',
*          netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
*          family: 'IPv6',
*          mac: '00:00:00:00:00:00',
*          scopeid: 0,
*          internal: true } ],
*     ens33: 
*      [ { address: '192.168.71.147',
*          netmask: '255.255.255.0',
*          family: 'IPv4',
*          mac: '00:0c:29:e3:04:c1',
*          internal: false },
*        { address: 'fe80::20c:29ff:fee3:4c1',
*          netmask: 'ffff:ffff:ffff:ffff::',
*          family: 'IPv6',
*          mac: '00:0c:29:e3:04:c1',
*          scopeid: 2,
*          internal: false } ] }
***/
console.log(os.EOL);                // \r\n
相關文章
相關標籤/搜索