Python Glossary English

Python 3.3+ipaddressпонятие

ipaddress

модуль

Разбирает и проверяет IPv4- и IPv6-адреса и сети: принадлежность подсети, перебор хостов, маски.

Синтаксис

import ipaddress

Берите ipaddress вместо разбора строки адреса регулярным выражением: модуль сам проверяет диапазоны октетов, понимает IPv6 и отвечает, лежит ли адрес в сети. Адрес (ip_address) и сеть (ip_network) — разные объекты: '10.0.0.0/8' — сеть, а ip_network('10.0.0.5/8') бросит ValueError, потому что у сети заданы биты хоста; передайте strict=False или берите ip_interface.

Примеры

import ipaddress
net = ipaddress.ip_network('192.168.1.0/30')
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(ipaddress.ip_address('::1').version)  # → 6
ipaddress.ip_network('10.0.0.5/8')  # → ValueError: host bits set

См. также

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

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