@blueking/ip_subnet_divider
v1.0.4
Published
ip subnet divider
Downloads
3
Maintainers
Readme
@blueking/ip_subnet_divider
IPV4 CIDR 子网划分计算工具用于从给出的 IP 地址块 和 子网数,计算出 主机数、子网掩码、子网主机范围、子网主机数、子网网段 和 子网广播地址。
快速开始
安装
npm i @blueking/ip_subnet_divider
使用
import calculator from "@blueking/ip_subnet_divider";
const {
ipMask,
ipCIDR,
subnets
} = calculator('10.0.0.1/8', 8);
原理
下面举两个例子:
例1、要将网络地址块 10.0.0.0/8 划分成 8 个子网。
10.0.0.0/8 的主机号长度为 24,因此主机数有 2^24 = 16777216 个。
因为要划分成 8 个子网,因此需要拿出 3 位作为子网网段,因此子网掩码是 255.244.0.0/11。
子网网段的二进制表示可能性有:
111、110、101、011、100、010、001、000
因此,可以计算出对应的子网网络号
因为,最小的地址可以表示成 0000000.......0000001
最大的地址可以表示成 000(共11个0)...001111111.....111110
所以,只要用上述计算出的 8 个子网网络号与 最小地址 和 最大地址进行 按位或运算 就可以得到每个子网网段的主机地址范围了,
其中,可以顺便算出子网的网络号和广播地址,
主机号二进制位全0的地址是网络号,全1的地址是广播地址。
例2、要将网络地址块 192.168.1.0/24 划分成 4 个子网
借助上述思路,可以计算出结果: