import ipaddress # для IP4-интерфейса interface = ipaddress.IPv4Interface(address) # для IP6-интерфейса interface = ipaddress.IPv6Interface(address)
address - IP-адрес с маской сети.IPv4Interface/IPv6Interface соответственно.Классы IPv4Interface()/IPv6Interface() создают интерфейсы IPv4 и IPv6 соответственно.
Значение аргумента address такое же, как в конструкторе IPv4Network/IPv6Network, за исключением того, что всегда принимаются произвольные IP-адреса хоста.
IPv4Interface/IPv6Interface:Классы IPv4Interface()/IPv6Interface() является подклассами IPv4Address()/IPv6Address() соответственно, поэтому они наследует все атрибуты этих классов.
Кроме того, IPv4Interface/IPv6Interface определяют дополнительные атрибуты:
interface.ip объект IP-адреса,interface.network объект сети,interface.with_prefixlen интерфейс с маской, в префиксной записи,interface.with_netmask интерфейса с сетью в виде маски,interface.with_hostmask интерфейса с сетью в виде маски хоста,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-адресом или сетевым объектом.
Для сравнений (<, > и т. д.) - другие правила: