gpt4 book ai didi

java - 如何在Java中从IP获取子网

转载 作者:行者123 更新时间:2023-12-01 09:06:17 25 4
gpt4 key购买 nike

如何从 IP 地址获取子网值。例如,我们可以在 Python 中执行以下操作。 (但是 Java 怎么样?)

interface = ipaddress.IPv4Interface('11.22.104.0/0.0.0.255')
value = interface.with_prefixlen

输出值=11.22.104.0/24

基本上,我需要一个将 0.0.0.255 转换为/24 的函数。谢谢。

编辑

-使用Java 7。

最佳答案

与 Guava :

int slash = Integer.bitCount(
~Ints.fromByteArray(
InetAddresses.forString("0.0.0.255").getAddress()));

使用 Java 8:

int slash = Arrays.stream("0.0.0.255".split("\\."))
.mapToInt(Integer::parseInt)
.map(i -> ~i & 0xFF)
.map(Integer::bitCount)
.sum();

使用 Java 7:

int slash = 0;
for (String octet : "0.0.0.255".split("\\.")) {
slash += Integer.bitCount(~Integer.parseInt(octet) & 0xFF);
}

slash 的值为 24。

关于java - 如何在Java中从IP获取子网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41256515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com