2014-02-18 3 views
5

Я хочу, чтобы все включено диапазон в достоянию-сети, но когда я пытаюсьCommons-нетто 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

 Смежные вопросы

  • Нет связанных вопросов^_^