Получить все IPv6-адреса из префикса CIDR?

Я нашел много информации, как получить все адреса из подсети ipv4 cidr, но ничего полезного для ipv6.

Есть ли в php какие-нибудь библиотеки для расчета?
Что мне нужно, это массив всех адресов из подсети ipv6 cidr.

Например, все адреса из этой подсети 3FFA: FF2B: 4D: A000 :: / 51.

После этого я хочу сделать nslookup по этим адресам.

-1

Решение

Я нашел много информации, как получить все адреса из подсети ipv4 cidr, но ничего полезного для ipv6.

Есть ли в php какие-нибудь библиотеки для расчета?
Что мне нужно, это массив всех адресов из подсети ipv6 cidr.

Например, все адреса из этой подсети 3FFA: FF2B: 4D: A000 :: / 51.

После этого я хочу сделать nslookup по этим адресам.

самый старый «data-shortcut =» O

Другие решения

Что мне нужно, это массив всех адресов из ipv6 cidr

На самом деле, это, вероятно, не то, что вы хотите. Количество задействованных адресов может быстро вырасти до неуправляемого. Хранение их всех в массиве потребует огромного количества памяти. (например, если вы держите каждый адрес как 128-битное значение
тогда для / 51 вам понадобится около 2 000 000 000 000 ТБ оперативной памяти для хранения этого массива).

Что вам действительно нужно, так это, вероятно, то, что будет генерировать последовательные адреса, чтобы вы могли перебирать адреса и выполнять некоторые действия для каждого из них; опять же, это вряд ли будет управляемым, так как даже если вы берете только 1 нс для обработки каждого IP, вы собираетесь потратить тысячелетия, чтобы фактически перебрать все адреса в / 51 (например, (1e-9 * 2 ** 77) / (86400 * 365) = 4 791 848 лет).

голосует «data-shortcut =» V

4