java 根据ipv4/掩码,获取所有ip
时间: 2023-12-10 12:37:50 浏览: 73
可以使用Java中的`InetAddress`类和`SubnetUtils`类来实现。
以下是一个示例代码:
```java
import org.apache.commons.net.util.SubnetUtils;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
public class IPUtil {
public static void main(String[] args) throws UnknownHostException {
String ip = "192.168.1.0";
int mask = 24;
List<String> ips = getAllIPs(ip, mask);
for (String s : ips) {
System.out.println(s);
}
}
public static List<String> getAllIPs(String ip, int mask) throws UnknownHostException {
List<String> ips = new ArrayList<>();
SubnetUtils utils = new SubnetUtils(ip + "/" + mask);
String[] allIps = utils.getInfo().getAllAddresses();
for (String s : allIps) {
InetAddress inetAddress = InetAddress.getByName(s);
if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress()) {
ips.add(s);
}
}
return ips;
}
}
```
在此示例中,我们将IP地址设置为`192.168.1.0`,子网掩码为`24`位。然后使用`SubnetUtils`类获取该子网中所有IP地址,并使用`InetAddress`类检查每个地址是否为回环地址或链接本地地址。最后,将结果作为字符串列表返回。
阅读全文