У меня есть список диапазонов 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, которая может помочь мне сравнить эти диапазоны?
Хорошо, похоже, это похоже на 'isInRange' из org.apache.commons.net.util -> SubnetUtils.SubnetInfo. Я надеялся, что будет возможность сравнить два диапазона непосредственно. – d4rky91
Хорошо, я вроде как сделал это, как вы предлагали. Я не использовал CIDRUtils, но, как уже упоминалось выше, пакет org.apache.commons.net.util для создания объекта каждого диапазона в моем списке. После этого я проверил их вручную, сравнив первый и последний Ip из каждого диапазона во все остальные диапазоны. Я сделал это с помощью «isInRange» и «getAllAddresses». Это не сработает, если диапазоны могут перекрывать друг друга, что не соответствует мне. – d4rky91