2014-02-18 73 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

相關問題