在Java中将CIDR表示法转换为IP范围

时间:2014-06-30 05:50:59

标签: java networking network-programming ip-address cidr

如何在java中将cidr转换为ip范围?我已经使用了apache SubnetUtils但它忽略了该范围的第一个和最后一个值。

e.g 对于CIDR 192.168.1.0/16,输出应为192.168.0.0至192.168.255.255。 但我得192.168.0.1到192.168.255.254。

请帮忙

2 个答案:

答案 0 :(得分:11)

默认情况下,SubnetUtils类会将可用范围" host"中的第0个和最后一个地址排除在外。地址,因为它们是(或者在第0个地址的情况下)用作网络广播地址。

您需要在.setInclusiveHostCount(true)实例上调用SubnetUtils方法,告诉它在返回的范围内包含这些地址。

答案 1 :(得分:1)

实际上,由于它携带的特殊性,第一个和最后一个值将被忽略。这些值不是通用IP地址。Class C IP地址范围将仅限于此。您需要阅读更多关于“ C类IP地址中的子网和寻址“。

192.168.0.0 --->按照惯例,网络路由器和其他网关使用192.168.0.0来统一引用专用网络!作为私有网络,192.168.0.0和此网络中的所有其他地址都不能用于Internet.It不像普通的IP-Address.It是主机的IP地址(默认情况下),你不能改变它!

192.168.255.255 --->网络中的广播地址,同样不是一般的IP地址,因为它用于向网络上的所有其他计算机广播数据!