Валидатор validate_ipv6_address

Валидатор validate_ipv6_address применяется к полям форм Django для проверки того, что введенное значение является корректным IPv6-адресом. Данный валидатор входит в стандартный набор валидаторов Django и используется для обеспечения правильности формата IP-адресов шестой версии. Валидатор принимает строку и проверяет ее на соответствие стандартам IPv6, включая сокращенные и полные формы записи.

Синтаксис

pythonfrom django.core.validators import validate_ipv6_address

validate_ipv6_address(value)

Валидатор принимает один обязательный параметр:

При успешной проверке валидатор ничего не возвращает. В случае ошибки выбрасывается исключение ValidationError с соответствующим сообщением.

Пример

Используем валидатор для проверки корректного IPv6-адреса:

pythonfrom django.core.validators import validate_ipv6_address
from django.core.exceptions import ValidationError

# Проверка корректного IPv6-адреса
ip_address = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"

try:
  validate_ipv6_address(ip_address)
  print("IP-address is valid")
except ValidationError as e:
  print(f"Error: {e.message}")

Результат выполнения кода:

python"IP-address is valid"

Пример

Проверим сокращенную форму записи IPv6-адреса:

pythonfrom django.core.validators import validate_ipv6_address
from django.core.exceptions import ValidationError

# Сокращенная форма IPv6-адреса
ip_address = "::1"

try:
  validate_ipv6_address(ip_address)
  print("Shortened IPv6 is valid")
except ValidationError as e:
  print(f"Error: {e.message}")

Результат выполнения кода:

python"Shortened IPv6 is valid"

Пример

Используем валидатор в поле формы для автоматической проверки IPv6-адресов:

pythonfrom django import forms
from django.core.validators import validate_ipv6_address

class ServerForm(forms.Form):
  name = forms.CharField(max_length=100)
  ipv6_address = forms.CharField(
    validators=[validate_ipv6_address],
    label="IPv6 Address",
    help_text="Enter a valid IPv6 address"
  )
  
  def clean_ipv6_address(self):
    data = self.cleaned_data['ipv6_address']
    # Дополнительная обработка после валидации
    return data

Пример

Обработаем случай с некорректным IPv6-адресом:

pythonfrom django.core.validators import validate_ipv6_address
from django.core.exceptions import ValidationError

# Некорректный IPv6-адрес
invalid_ip = "256.256.256.256"

try:
  validate_ipv6_address(invalid_ip)
  print("Address is valid")
except ValidationError as e:
  print(f"Validation failed: {e.message}")

Результат выполнения кода:

python"Validation failed: Enter a valid IPv6 address."

Смотрите также

  • валидатор validate_ipv4_address,
    который проверяет корректность IPv4-адресов
  • валидатор validate_ipv46_address,
    который проверяет корректность как IPv4, так и IPv6-адресов
  • валидатор DomainNameValidator,
    который проверяет корректность доменных имен
  • валидатор URLValidator,
    который проверяет корректность URL-адресов