2014-02-18 69 views
5

我想在一个包容各方的IP范围公网,但是当我尝试共享网3.3 SubnetUtils不允许0.0.0.0/0

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地址?

回答

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"); 
+1

感谢。这是不允许的,这很荒谬。我们应该如何根据偏好建立一个全通过滤器? – NotGaeL

相关问题