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Сообщить о неточности