如何解决Java中获取所有IP子网详细信息的方法
我有一个来自不同子网的IP列表,例如:
10.181.192.18 255.255.255.248
10.181.192.26 255.255.255.248
我想生成此类IP的所有IP详细信息,例如网络,前缀(例如,在这种情况下为/ 29),范围等。
我对Java没有生成此类细节的方法吗?!
解决方法
如果这些是4个IP地址,则无法从它们生成网络,网络掩码和子网范围。
如果它们是此计算机的IP地址,则可以使用NetworkInterface
API中的方法来查询接口及其绑定的InterfaceAddress
列表。 InterfaceAddress
允许您检索前缀长度,然后可以使用前缀长度来计算IP范围。
如果这些实际上是IP地址+网络掩码对(它们在出现在我看来是),那么您已经拥有了所需的信息。只需从网络掩码计算前缀长度,从IP和网络掩码计算网络范围即可。
我不知道任何进行计算的Java SE API,但是它们很简单。将IP地址和掩码转换为整数(或字节数组),对位数进行计数,进行一些按位运算,然后转换回标准符号。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。