Commons-net 3.3 SubnetUtils不允许0.0.0.0/0

时间:2014-02-18 12:39:19

标签: java ip-address subnet apache-commons-net

我想在commons-net中创建一个包罗万象的ip范围,但是当我尝试

SubnetUtils subnetUtils = new SubnetUtils("0.0.0.0", "0.0.0.0");

或相同:

SubnetUtils subnetUtils = new SubnetUtils("0.0.0.0/0");

我得到一个例外:

java.lang.IllegalArgumentException: Value [0] not in range (0,32]
at org.apache.commons.net.util.SubnetUtils.rangeCheck(SubnetUtils.java:304)
at org.apache.commons.net.util.SubnetUtils.calculate(SubnetUtils.java:229)
at org.apache.commons.net.util.SubnetUtils.<init>(SubnetUtils.java:63)

我看到已有一张票:https://issues.apache.org/jira/browse/NET-511。 他们说,这个问题在下一个(3.4)版本中得到了解决。

当commons-net 3.4发布时,是否有任何解决方法(如SubnetUtils对象列表)一起允许每个IPv4地址?

1 个答案:

答案 0 :(得分:2)

是的,有一个解决方法,包含SubnetUtils对象列表,如您所述:

CIDR Signature: [0.255.255.255/1] Netmask: [128.0.0.0]
First Address:  [0.0.0.0]
Last Address:   [127.255.255.255]

CIDR Signature: [255.255.255.255/1] Netmask: [128.0.0.0]
First Address:  [128.0.0.0]
Last Address:   [255.255.255.255]

或使用Java代码:

SubnetUtils subnetUtils1 = new SubnetUtils("0.255.255.255/1");
SubnetUtils subnetUtils2 = new SubnetUtils("255.255.255.255/1");