import re

from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _

have_symbol = re.compile('[^a-zA-Z0-9._-]+')
wrong_ip = re.compile('^0.|^255.')
wrong_name = re.compile('[^a-zA-Z0-9._-]+')


def validate_hostname(value):
    sym = have_symbol.match(value)
    wip = wrong_ip.match(value)

    if sym:
        raise ValidationError(_('Hostname must contain only numbers, or the domain name separated by "."'))
    elif wip:
        raise ValidationError(_('Wrong IP address'))


def validate_name(value):
    have_symbol = wrong_name.match('[^a-zA-Z0-9._-]+')
    if have_symbol:
        raise ValidationError(_('The hostname must not contain any special characters'))