Я пытаюсь написать скрипт, который разбивает подсети больше (не больше/16), чем/24 на подсеть. Например: 10.10.10.0/23 должен дать мне 10.10.10.0/24 и 10.10.11.0/24Нужно сломать подсеть IP
Моя логика заключается в первом сканировании маски CIDR. если меньше 24, то вычтите из 24, и это число (скажем, x) дает общее число/24s, а затем от 1 до третьего октета IP x раз и/24.
например: 10.10.8.0/22
if 22 < 24
x = 24-22 = 2
total # of /24s = 2^x = 4
So output :
10.10.8.0/24
10.10.9.0/24
10.10.10.0/24
10.10.11.0/24
Я не уверен, как код/изменить строку для только третьего октета и добавить 1 только третий октет.
Я собираюсь создать список всех значений третьего октета и перестроить IP-адреса. Но если есть более простой способ, это мне очень поможет!
Спасибо!
Я не прошу ввести код здесь, только направление/несколько ссылок о том, как подойти, должно быть хорошо. благодаря ! – skd
Возможно, попробуйте не работать с десятичной точкой нотации, но двоичной (или десятичной, если хотите). Если у вас есть подсеть «IP/N», вы хотите сгенерировать все 24-битные числа от 0 до «2^(24 - N) - 1', добавить их на ваш базовый IP-адрес, и у вас есть все префиксы для ваши '/ 24' подсети. Затем вы можете конвертировать их обратно в десятичную точку, если хотите. – Carsten
@Carsten Но у меня все еще есть «точки». Точки не уйдут, если я конвертирую в двоичный код. например: 192.168.1.1 == 11000000.10101000.00000001.00000001 – skd