私は以下のJSON文字列を持っています -
"abc":["17.14.4.0/14"]
"def":["12.24.82.0/14","17.15.146.38"]
abc、def、および JSON 文字列に含まれるすべての文字列のすべての IP を表示する以下のメソッドがあります (100 近くあります)。
private static List<String> listOfAllIPs = new ArrayList<String>();
public static List<String> getListOfIps(String networkID)
{
SubnetUtils utils = new SubnetUtils(networkID);
String[] ipArr = utils.getInfo().getAllAddresses();
List<String> ipList = Arrays.asList(ipArr);
return ipList;
}
for(String networkIP:IPList) //IP list is the list of all the IPs - I have pasted sample IP list below
{
listOfAllIPs.addAll(getListOfIps(networkIP));
}
IP List -
17.24.84.0/24
17.24.80.0/24
63.92.240.160/28
12.43.176.137/28
17.24.86.0/25
17.24.92.0/24
ここにコード全体を貼り付けることはできません。これは私が抱えている問題です。私の方法は、abc の IP を取得する必要がある場合に完全に機能します。しかし、文字列 def の場合、以下のエラーがスローされます -
Exception in thread "main" java.lang.IllegalArgumentException: Could not parse [12.24.82.0/14]
at org.apache.commons.net.util.SubnetUtils.calculate(SubnetUtils.java:217)
at org.apache.commons.net.util.SubnetUtils.<init>(SubnetUtils.java:52)
チームメイトと私は、これを解決する方法を見つけるのに苦労しています。どんな助けでも大歓迎です。