Модуль 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')