Python 3.3+ipaddressпонятие
ipaddress.IPv4Network
сети
Класс сети IPv4: адрес сети и маска; умеет перечислять хосты, проверять вхождение адреса и делить сеть на подсети.
Синтаксис
ipaddress.IPv4Network(address, strict=True)
num_addresses считает и адрес сети, и широковещательный, а hosts() их исключает: в /24 адресов 256, хостов 254 — но у /31 и /32 hosts() возвращает все адреса. Вхождение проверяют оператором in: адрес другой версии даёт False, а не ошибку. Конструктор, как и ip_network(), по умолчанию strict=True и отвергает адрес с битами хоста.
Примеры
import ipaddress
net = ipaddress.IPv4Network('192.168.1.0/30')
print(net.num_addresses, net.broadcast_address) # → 4 192.168.1.3
print([str(h) for h in net.hosts()]) # → ['192.168.1.1', '192.168.1.2']
print(ipaddress.ip_address('192.168.1.2') in net) # → True
print(list(ipaddress.IPv4Network('10.0.0.0/24').subnets(new_prefix=26))[1]) # → 10.0.0.64/26
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности