Javascript从CIDR前缀计算IPv6范围

时间:2015-08-30 11:45:14

标签: javascript ip-address ipv6 cidr

使用Javascript(不带JQuery)我希望获得IPv6 CIDR前缀中的最小和最大IP。

例如,2001:280::/32会输出2001:280:0:0:0:0:0:02001:280:ffff:ffff:ffff:ffff:ffff:ffff

我该怎么做?提前谢谢!

2 个答案:

答案 0 :(得分:0)

假设您安装了Node和NPM:

$ touch index.js
$ npm init
$ npm i --save ip-address
$ vim index.js

var v6 = require('ip-address').v6;

var addr = new v6.Address('2001:280::/32');

console.log(addr.parsedAddress.join(':'));
console.log(addr.endAddress().address);

$ <esc>:wq
$ node index.js
2001:280:0:0:0:0:0:0
2001:0280:ffff:ffff:ffff:ffff:ffff:ffff

似乎没有面向浏览器的包,所以我建议使用Browserify(http://browserify.org/)让它工作分叉项目并将所有内容整合到一个文件中所以你可以在你的浏览器中运行它(当然,省略节点特定的代码)。

答案 1 :(得分:0)

尝试ip6 npm包:https://www.npmjs.com/package/ip6

ip6有助于规范化,缩写,划分子网,生成随机子网/主机并计算IPv6子网的大小范围。

let ip6 = require('ip6');
console.log(ip6.range('2001:280:0:0:0:0:0:0', 32));
{ start: '2001:0280:0000:0000:0000:0000:0000:0000',
  end: '2001:0280:ffff:ffff:ffff:ffff:ffff:ffff',
  size: 7.922816251426434e+28 }

或者在命令行中:

ip6 -R 2001:280:0:0:0:0:0:0 32
{"start":"2001:0280:0000:0000:0000:0000:0000:0000","end":"2001:0280:ffff:ffff:ffff:ffff:ffff:ffff","size":7.922816251426434e+28}
相关问题