如何在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。
请帮忙
答案 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地址,因为它用于向网络上的所有其他计算机广播数据!