比较 Java 中的 IP 范围列表(与 CIDR)

Compare a list of Ip Ranges (with CIDR) in Java

我有一个用 CIDR 指定的 IP 范围列表。我想比较范围并删除已包含在另一个范围中的所有范围。

示例:我有:

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 中是否有任何库可以帮助我比较这些范围?

请看下面linkCIDRUtils. You'll need to do the checks yourself but the method call isInRange is implemented (it's not documented). This has also been answered before here