Python Glossary English

Python 3.3+ipaddressпонятие

ipaddress.IPv6Network

сети

Класс сети IPv6: те же операции, что у IPv4Network, но для 128-битных адресов и огромных диапазонов.

Синтаксис

ipaddress.IPv6Network(address, strict=True)

Типовая подсеть /64 содержит 2**64 адресов: list(net) или list(net.hosts()) повесит программу и съест память — перебирайте лениво или работайте через in и subnets(). hosts() у IPv6 исключает только первый адрес (anycast-адрес маршрутизатора), а последний оставляет — широковещательного адреса в IPv6 нет. strict=True по умолчанию, как и у IPv4.

Примеры

import ipaddress
net = ipaddress.IPv6Network('2001:db8::/64')
print(net.num_addresses == 2 ** 64)  # → True
small = ipaddress.IPv6Network('2001:db8::/126')
print([str(h) for h in small.hosts()])  # → ['2001:db8::1', '2001:db8::2', '2001:db8::3']

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности