【发布时间】:2020-12-17 21:28:40
【问题描述】:
我有一个来自不同子网的 IP 列表,例如:
10.181.192.18 255.255.255.248
10.181.192.26 255.255.255.248
我想为此类 IP 生成所有 IP 详细信息,例如网络,前缀(例如在这种情况下是 /29),可能是范围等。
Java 没有这样的方法来生成这样的细节,我说得对吗?!
【问题讨论】:
我有一个来自不同子网的 IP 列表,例如:
10.181.192.18 255.255.255.248
10.181.192.26 255.255.255.248
我想为此类 IP 生成所有 IP 详细信息,例如网络,前缀(例如在这种情况下是 /29),可能是范围等。
Java 没有这样的方法来生成这样的细节,我说得对吗?!
【问题讨论】:
如果是 4 个 IP 地址,则无法从中生成网络、网络掩码和子网范围。
如果它们是>thisNetworkInterface API 中的方法来查询接口及其绑定的InterfaceAddress 列表。 InterfaceAddress 允许您检索前缀长度,然后您可以使用它来计算 IP 范围。
如果它们实际上是 IP 地址 + 网络掩码对(它们在我看来是这样),那么您已经拥有了所需的信息。只需根据网络掩码计算前缀长度,根据 IP 和网络掩码计算网络范围。
我不知道有任何 Java SE API 可以进行计算,但它们是直截了当的。将 IP 地址和掩码转换为整数(或字节数组)、计数位、执行一些按位运算并转换回标准表示法。
【讨论】: