我有下面的代码,基本上是基于 ipaddress 打印一些东西。
private static void getInfo(String ipAddress) {
for (String cidr : myNetworkList) {
if (InetAddressValidator.getInstance().isValid(ipAddress)) {
if (cidr.equals(ipAddress)) {
//Do something
break;
}
}
else {
SubnetUtils subnetUtils = new SubnetUtils(cidr);
if (subnetUtils.getInfo().isInRange(ipAddress)) {
//Do something else
break;
}
}
}
}
当我提供一个有效的 IP 地址作为参数(例如 - 17.151.126.28)时,该方法工作得非常好。但是,如果我以 CIDR 表示法给出 IP 地址,例如 - 17.24.84.0/24,我会收到以下错误 -
Exception in thread "main" java.lang.IllegalArgumentException: Could not parse [17.24.84.0/24]
我不知道如何解决这个问题。我在某处读到问题在于子网,因为它不支持 IpV4 地址。我不是网络专家,所以我不知道问题是否与子网有关,或者我是否应该使用备用库?