Javascript根据CIDR前缀计算IPv6范围

Javascript calculate IPv6 range from CIDR prefix

本文关键字:IPv6 范围 计算 前缀 根据 CIDR Javascript      更新时间:2023-09-26

使用Javascript(没有JQuery)我希望在IPv6 CIDR前缀中获得最小和最大ip。

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

我该怎么做?提前感谢!

假设你已经安装了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/)来实现这个工作 fork项目并将所有内容塞进一个文件中,以便您可以在浏览器中运行它(当然要省略特定于节点的代码)

试试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}