我想在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地址?
最佳答案
是的,有一种解决方法,如您所提到的,带有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");