Сообщить об ошибке.

Функции ip_address, ip_network и ip_interface модуля ipaddress в Python

Фабричные функции создания объектов IP-адреса, сети и интерфейса

Модуль ipaddress предоставляет фабричные функции для удобного создания IP-адресов, сетей и интерфейсов.

Одним из недостатков этих функций является то, что необходимость обрабатывать как форматы IPv4, так и IPv6 означает, что сообщения об ошибках предоставляют только общую информацию. Более подробные отчеты об ошибках можно получить, если вызывать соответствующие конструкторы классов для конкретных версий напрямую.

Содержание:


ipaddress.ip_address(address):

Функция ipaddress.ip_address() возвращает объект IPv4Address или IPv6Address в зависимости от IP-адреса address, переданного в качестве аргумента.

Могут быть предоставлены адреса IPv4 или IPv6. Целые числа меньше 2**32 по умолчанию будут считаться IPv4.

Если адрес не представляет действительный адрес IPv4 или IPv6, то возникает исключение ValueError.

>>> import ipaddress
>>> ipaddress.ip_address('192.168.0.1')
# IPv4Address('192.168.0.1')
>>> ipaddress.ip_address('2001:db8::')
# IPv6Address('2001:db8::')

>>> ipaddress.ip_address(3221225985)
# IPv4Address('192.0.2.1')
>>> ipaddress.ip_address(42540766411282592856903984951653826561)
# IPv6Address('2001:db8::1')

ipaddress.ip_network(address, strict=True):

Функция ipaddress.ip_network() возвращает объект IPv4Network или IPv6Network в зависимости от IP-адреса, переданного в качестве аргумента.

Аргумент address - это строка или целое число, представляющее IP-сеть. Могут быть созданы IPv4 или IPv6 сети. Целые числа меньше 2**32 будут считаться IPv4 по умолчанию.

Аргумент strict передается конструктору IPv4Network или IPv6Network.

Если адрес не представляет действительный адрес IPv4 или IPv6 или если в сети установлены биты узла, то возникает исключение ValueError.

>>> import ipaddress
>>> ipaddress.ip_network('192.168.0.0/28')
# IPv4Network('192.168.0.0/28')
>>> ipaddress.ip_network('192.0.2.1/24')
# Traceback (most recent call last):
#   ...
# ValueError: 192.0.2.1/24 has host bits set

>>> ipaddress.ip_network('192.0.2.1/24', strict=False)
# IPv4Network('192.0.2.0/24')

>>> ipaddress.ip_network(3221225984)
# IPv4Network('192.0.2.0/32')
>>> ipaddress.ip_network(42540766411282592856903984951653826560)
# IPv6Network('2001:db8::/128')

ipaddress.ip_interface(address):

Функция ipaddress.ip_interface() возвращает объект IPv4Interface или IPv6Interface в зависимости от IP-адреса, переданного в качестве аргумента.

Аргумент address - это строка или целое число, представляющее IP-адрес. Могут быть предоставлены адреса IPv4 или IPv6. Целые числа меньше 2**32 по умолчанию будут считаться IPv4.

Если адрес не представляет действительный адрес IPv4 или IPv6, то возникает исключение ValueError.

>>> ipaddress.ip_interface('192.0.2.1/24')
# IPv4Interface('192.0.2.1/24')
>>> ipaddress.ip_interface('2001:db8::1/96')
# IPv6Interface('2001:db8::1/96')