1.0.4 • Published 10 months ago

@blueking/ip_subnet_divider v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@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 个子网

借助上述思路,可以计算出结果:

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago