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-адресом или сетевым объектом.
Для сравнений (<
, >
и т. д.) - другие правила: