validators.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:esdc-ce 作者: erigones 项目源码 文件源码
def cidr_validator(value, return_ip_interface=False):
    """Validate IPv4 + optional subnet in CIDR notation"""
    try:
        if '/' in value:
            ipaddr, netmask = value.split('/')
            netmask = int(netmask)
        else:
            ipaddr, netmask = value, 32

        if not validators.ipv4_re.match(ipaddr) or not 1 <= netmask <= 32:
            raise ValueError

        ipi = ipaddress.ip_interface(six.text_type(value))

        if ipi.is_reserved:
            raise ValueError

    except ValueError:
        raise ValidationError(_('Enter a valid IPv4 address or IPv4 network.'))

    if return_ip_interface:
        return ipi
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号