资讯专栏INFORMATION COLUMN

NPM酷库:ip,IP地址处理

gougoujiang / 3132人阅读

摘要:酷库,每天两分钟,了解一个流行库。今天我们来了解一个专门用来处理地址的库,库能够获取本机地址比较转换掩码子网计算等各种和网络相关的操作获取本机网卡比较两个是否相同表示格式互转判断是否是内网判断版本掩码计算子网计算子网范围判断参考资料

NPM酷库,每天两分钟,了解一个流行NPM库。·

今天我们来了解一个专门用来处理IP地址的库:ip,ip库能够获取本机IP地址、比较、转换、掩码/子网计算等各种和网络IP相关的操作:

const ip = require("ip");

// 获取本机网卡IP
ip.address();

// 比较两个IP是否相同
ip.isEqual("::1", "::0:1"); // true 

// IP 表示格式互转
ip.toBuffer("127.0.0.1") // Buffer([127, 0, 0, 1]) 
ip.toString(new Buffer([127, 0, 0, 1])) // 127.0.0.1 
ip.toLong("127.0.0.1"); // 2130706433 
ip.fromLong(2130706433); // "127.0.0.1" 

// 判断是否是内网IP
ip.isPrivate("127.0.0.1") // true 

// 判断IP版本
ip.isV4Format("127.0.0.1"); // true 
ip.isV6Format("::ffff:127.0.0.1"); // true 

// 掩码计算
ip.fromPrefixLen(24) // 255.255.255.0 
ip.mask("192.168.1.134", "255.255.255.0") // 192.168.1.0 
ip.cidr("192.168.1.134/26") // 192.168.1.128 
ip.not("255.255.255.0") // 0.0.0.255 
ip.or("192.168.1.134", "0.0.0.255") // 192.168.1.255 

// 子网计算
ip.subnet("192.168.1.134", "255.255.255.192");
// { networkAddress: "192.168.1.128", 
//   firstAddress: "192.168.1.129", 
//   lastAddress: "192.168.1.190", 
//   broadcastAddress: "192.168.1.191", 
//   subnetMask: "255.255.255.192", 
//   subnetMaskLength: 26, 
//   numHosts: 62, 
//   length: 64, 
//   contains: function(addr){...} } 

// 子网范围判断
ip.cidrSubnet("192.168.1.134/26").contains("192.168.1.190") // true 
参考资料

https://github.com/indutny/no...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107326.html

相关文章

  • NPM酷库:netmask,网络掩码计算

    摘要:酷库,每天两分钟,了解一个流行库。昨天我们了解到库用来做地址计算处理,在脉冲云的集群管理中,我们使用了另外一个和网络地址相关的库,用来计算网络掩码。通过,我们可以获取一个子网段的网络掩码子网起始和结束,还可以判断一个是否属于该子网。 showImg(https://segmentfault.com/img/bV3yCG?w=640&h=480); NPM酷库,每天两分钟,了解一个流行N...

    yeooo 评论0 收藏0
  • NPM酷库:commander,命令行参数处理框架

    摘要:酷库,每天两分钟,了解一个流行库。昨天,我们学习的库,用于解析命令行参数,能将参数数组转换为一个更易于访问的对象。今天,我们继续学习一个更加强大的命令行参数处理库。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们学习的minimist库,用于解析Node.js命令行参数,能将参数数组process.env.argv 转换为一个更易于访问的对象。 今天,我们继续学习一个更加强...

    dendoink 评论0 收藏0
  • NPM酷库:async 强大的异步任务控制

    摘要:酷库,每天两分钟,了解一个流行库。库是一个非常出色的异步控制库,除了函数外,还提供了大量的其他工具函数,在当年没有的时候,库的作用尤为突出。 NPM酷库,每天两分钟,了解一个流行NPM库。 今天要了解的库叫async,与ES7标准的async/await关键字不同,这里说的async只是NPM的一个库,为了区别,下文中今天的主角叫async库,async/await的关键字叫async...

    xingpingz 评论0 收藏0
  • NPM酷库:intl-messageformat,多语言处理

    摘要:酷库,每天两分钟,了解一个流行库。是一个用来辅助处理多语言的库,可以支持在字符串中输出变量,还可以支持复数形式。使用的是消息语法,支持名词复数和选择语法。 showImg(https://segmentfault.com/img/bV3yDo?w=1200&h=675); NPM酷库,每天两分钟,了解一个流行NPM库。· 在开发多国语言的项目时,为了给不同国家用户显示不同语言,我们一般...

    thekingisalwaysluc 评论0 收藏0
  • NPM酷库:moment,时间对象处理

    摘要:酷库,每天两分钟,了解一个流行库。上次,我们介绍了使用库将时间对象格式化为任意规则字符串,在实际开发中,我们不仅仅需要格式化时间。是专门用来处理时间的库,可以用来格式化验证比较计算解析时间。 NPM酷库,每天两分钟,了解一个流行NPM库。· 上次,我们介绍了使用 dateformat 库将时间对象格式化为任意规则字符串,在实际开发中,我们不仅仅需要格式化时间。 moment momen...

    eternalshallow 评论0 收藏0

发表评论

0条评论

gougoujiang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<