У меня есть блок адресов IPV6 / 96, и мне интересно, как я могу найти следующий адрес (поскольку адреса ipv6 могут содержать цифры и буквы). Я знаю, что первый адрес может быть числовым, но мне еще предстоит выяснить, как я могу действительно найти в каком-то порядке такое количество адресов.
Э.Г .: Какую технику я могу использовать, чтобы убедиться, что действительно смогу использовать все адреса?
Что вы подразумеваете под поиском следующего адреса? Вы имеете в виду найти следующий блок?
Если вы используете маску / 96, тогда длина вашей части идентификатора интерфейса будет 32 бита.
В стандартной записи, разделенной двоеточиями, каждый блок, разделенный двоеточиями, представляет 16 бит адреса, поэтому, если ваш блок:
2001: db8: 0: 0: 0: 9: 0: 0/96
Следующий блок будет:
2001: db8: 0: 0: 0: a: 0: 0/96
(т.е. вы просто добавляете единицу в 6-е поле адреса)
Если вы хотите рассчитать следующий адрес в пределах блок, вы просто добавляете единицу к адресу, придерживаясь диапазона блоков, который будет от 2001: db8 :: 9: 0: 0 до 2001: db8 :: 9: ffff: ffff. Адрес 2001: db8 :: 9: 0: 0 зарезервирован для произвольного адреса маршрутизатора подсети и не может быть назначен интерфейсу.
Все дополнение было бы простым шестнадцатеричный целочисленная арифметика. «Буквы» в адресе - это просто шестнадцатеричные цифры.
Я хотел бы добавить, что блок / 96 будет меньше, чем рекомендуемый размер адресации ссылки / 64. По этому поводу все еще ведутся споры, но в настоящее время рекомендуется придерживаться / 64 для каждого сегмента сети, если у вас нет острой необходимости сделать иначе.