getHosts method
Implementation
List<String> getHosts() {
final hosts = <String>[];
final parts = cidr.split('/');
final ip = parts[0];
final mask = int.parse(parts[1]);
final ipParts = ip.split('.');
final total = 1 << (32 - mask);
List<int> ipPartsInt = ipParts.map((e) => int.parse(e)).toList();
int i = 0;
while (true) {
final String ip = '${ipPartsInt[0]}.${ipPartsInt[1]}.${ipPartsInt[2]}.${ipPartsInt[3]}';
hosts.add(ip);
i++;
if (i == total) {
break;
}
ipPartsInt[3]++;
if (ipPartsInt[3] > 255) {
ipPartsInt[3] = 0;
for (int j = 2; j >= 0; j--) {
ipPartsInt[j]++;
if (ipPartsInt[j] <= 255) {
break;
}
ipPartsInt[j] = 0;
}
}
}
return hosts;
}