Модуль ipaddress
предоставляет фабричные функции для удобного создания IP-адресов, сетей и интерфейсов.
Одним из недостатков этих функций является то, что необходимость обрабатывать как форматы IPv4, так и IPv6 означает, что сообщения об ошибках предоставляют только общую информацию. Более подробные отчеты об ошибках можно получить, если вызывать соответствующие конструкторы классов для конкретных версий напрямую.
ipaddress.ip_address()
создает объект IP4/6-адреса,ipaddress.ip_network()
создает объект IP4/6-сети,ipaddress.ip_interface()
создает объект IP4/6-интерфейса.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')