2017-01-11 19 views
0

У меня есть список диапазонов IP, указанных в CIDR. Я хочу сравнить диапазоны и удалить все диапазоны, которые уже включены в другой.Сравнить список диапазонов Ip (с CIDR) в Java

Пример: у меня есть:

10.152.0.0/14

10.152.2.0/24

10.153.3.0/24

В результате только 10.152. 0.0/14 должен оставаться, потому что другие два уже включены в это.

Я пробовал с пакетом org.apache.commons.net.util, но если я не ошибаюсь, он может сравнивать только диапазон с адресом и не сравнивать сами диапазоны.

Есть ли библиотека на Java, которая может помочь мне сравнить эти диапазоны?

ответ

0

См. Следующую ссылку CIDRUtils. Вам нужно будет сделать проверки самостоятельно, но вызов метода isInRange реализован (он не документирован). Об этом также ответили до here

+0

Хорошо, похоже, это похоже на 'isInRange' из org.apache.commons.net.util -> SubnetUtils.SubnetInfo. Я надеялся, что будет возможность сравнить два диапазона непосредственно. – d4rky91

+0

Хорошо, я вроде как сделал это, как вы предлагали. Я не использовал CIDRUtils, но, как уже упоминалось выше, пакет org.apache.commons.net.util для создания объекта каждого диапазона в моем списке. После этого я проверил их вручную, сравнив первый и последний Ip из каждого диапазона во все остальные диапазоны. Я сделал это с помощью «isInRange» и «getAllAddresses». Это не сработает, если диапазоны могут перекрывать друг друга, что не соответствует мне. – d4rky91

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

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