1.引入commons net 包
<dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency>
2. 代码如下
String subnet = "192.168.0.0/16"; SubnetUtils utils = new SubnetUtils(subnet); String[] adress = utils.getInfo().getAllAddresses(); for(String oneAdd : adress){ System.out.println(oneAdd); }
对于无分类编址CIDR的说明
IP地址:: = {<网络前缀>,<主机号>}
例如202.194.20.138/19,此IP中前19位为网络前缀,后13位为主机号。
①202.194.20.138/19用二进制表示为:
11001010 11000010 00010100 1000101
②该地址所在CIDR地址块中最小的地址为
11001010 11000010 00000000 00000000,即202.194.0.0
③该地址所在CIDR地址块中最大的地址为:
11001010 11000010 00011111 11111111,即202.194.31.255
④该地址块中共有213=8192个地址
⑤/19对应的子网掩码为11111111.11111111.11100000.00000000,即255.255.224.0