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

Объекты IPv4Interface() и IPv6Interface() модуля ipaddress в Python.

Создание и использование IPv4 и IPv6 объектов интерфейсов.

Синтаксис:

import ipaddress

# для IP4-интерфейса
interface = ipaddress.IPv4Interface(address)

# для IP6-интерфейса
interface = ipaddress.IPv6Interface(address)

Параметры:

  • address - IP-адрес с маской сети.

Возвращаемое значение:

Описание:

Классы IPv4Interface()/IPv6Interface() создают интерфейсы IPv4 и IPv6 соответственно.

Значение аргумента address такое же, как в конструкторе IPv4Network/IPv6Network, за исключением того, что всегда принимаются произвольные IP-адреса хоста.

Атрибуты и методы объектов IPv4Interface/IPv6Interface:

Классы IPv4Interface()/IPv6Interface() является подклассами IPv4Address()/IPv6Address() соответственно, поэтому они наследует все атрибуты этих классов.

Кроме того, IPv4Interface/IPv6Interface определяют дополнительные атрибуты:


interface.ip:

Атрибут interface.ip возвращает объект IP-адреса IPv4Address/IPv6Address соответственно без сетевой информации.

>>> interface = IPv4Interface('192.0.2.5/24')
>>> interface.ip
# IPv4Address('192.0.2.5')

interface.network:

Атрибут interface.network возвращает объект сети IPv4Network/IPv6Network соответственно, которой принадлежит этот интерфейс.

>>> interface = IPv4Interface('192.0.2.5/24')
>>> interface.network
# IPv4Network('192.0.2.0/24')

interface.with_prefixlen:

Атрибут interface.with_prefixlen возвращает строковое представление интерфейса с маской, в ​​префиксной записи.

>>> interface = IPv4Interface('192.0.2.5/24')
>>> interface.with_prefixlen
# '192.0.2.5/24'

interface.with_netmask:

Атрибут interface.with_netmask возвращает строковое представление интерфейса с сетью в виде маски сети.

>>> interface = IPv4Interface('192.0.2.5/24')
>>> interface.with_netmask
# '192.0.2.5/255.255.255.0'

interface.with_hostmask:

Атрибут interface.with_hostmask возвращает строковое представление интерфейса с сетью в виде маски хоста.

>>> interface = IPv4Interface('192.0.2.5/24')
>>> interface.with_hostmask
# '192.0.2.5/0.0.0.255'

Операции, поддерживаемые объектами IPv4Interface/IPv6Interface.

Объекты интерфейса поддерживают некоторые операции. Если не указано иное, то операции могут применяться только между совместимыми объектами (например, IPv4 с IPv4, IPv6 с IPv6).

Операции сравнения интерфейсов.

Объекты интерфейса можно сравнить с обычным набором операторов сравнения.

Для сравнений (== и !=). Чтобы объекты были равны, IP-адрес и сеть должны быть одинаковыми. Интерфейс нельзя сравнивать с IP-адресом или сетевым объектом.

Для сравнений (<, > и т. д.) - другие правила:

  • Можно сравнивать объекты интерфейсов и IP-адресов с одинаковой версией IP.
  • Объекты IP-адресов всегда будут сортироваться раньше, чем объекты интерфейса.
  • Два объекта интерфейса сначала сравниваются по их сетям и, если они одинаковы, то по их IP-адресам.