2015-11-25 5 views
-1

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

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

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

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

+1

Я думаю, что название должно быть изменено, чтобы указать IPv6, а не IPv4. – asymmetric

+0

oh спасибо, что вы правы! – mk2015

ответ

4

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

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

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

Смежные вопросы