Python 3.3+ipaddressфункция
ipaddress.collapse_addresses()
операции над диапазонами
Склеивает список сетей и адресов в минимальный набор сетей: соседние и перекрывающиеся диапазоны сливаются.
Синтаксис
ipaddress.collapse_addresses(addresses)
Возвращает генератор, а не список: print() покажет <generator object …>, а второй проход по результату окажется пустым — оберните в list(). Отдельные адреса принимаются и становятся сетями /32. Смешать IPv4 и IPv6 в одном вызове нельзя — TypeError, их склеивают раздельно.
Примеры
import ipaddress
nets = [ipaddress.ip_network('10.0.0.0/25'), ipaddress.ip_network('10.0.0.128/25'),
ipaddress.ip_network('10.0.1.0/24')]
print(list(ipaddress.collapse_addresses(nets))) # → [IPv4Network('10.0.0.0/23')]
addrs = [ipaddress.ip_address('10.0.0.1'), ipaddress.ip_address('10.0.0.0')]
print(list(ipaddress.collapse_addresses(addrs))) # → [IPv4Network('10.0.0.0/31')]
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности