Python 3.3+ipaddressфункция
ipaddress.ip_network()
фабричные функции
Создаёт IPv4Network или IPv6Network из записи вида '192.168.1.0/24'; по умолчанию строго проверяет, что адрес — начало сети.
Синтаксис
ipaddress.ip_network(address, strict=True)
Главная ловушка — strict=True по умолчанию: '192.168.1.5/24' падает с ValueError «has host bits set», потому что в адресе сети взведены биты хоста. Если на входе адрес машины с маской, передайте strict=False — хост-биты обнулятся — или берите ip_interface(), который сохранит и адрес, и сеть. Маску можно писать и префиксом, и полностью: '/24' и '/255.255.255.0' дают одну сеть.
Примеры
import ipaddress
print(ipaddress.ip_network('192.168.1.5/24', strict=False)) # → 192.168.1.0/24
print(ipaddress.ip_network('192.168.1.0/255.255.255.0')) # → 192.168.1.0/24
ipaddress.ip_network('192.168.1.5/24') # → ValueError: 192.168.1.5/24 has host bits set
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности