validators.py 文件源码

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

项目:thorn 作者: robinhood 项目源码 文件源码
def block_cidr_network(*blocked_networks):
    # type: (*str) -> Callable
    """Block recipient URLs from a list of CIDR networks.

    Example:
        >>> block_cidr_network('192.168.0.0/24', '132.34.23.0/24')
    """
    _blocked_networks = [ip_network(text_type(x)) for x in blocked_networks]

    def validate_cidr(recipient_url):
        # type: (str) -> None
        recipient_addr = _url_ip_address(recipient_url)
        for blocked_network in _blocked_networks:
            if recipient_addr in blocked_network:
                raise SecurityError(
                    'IP address of recipient {0}={1} is in network {2}'.format(
                        recipient_url, recipient_addr, blocked_network,
                    ))
    validate_cidr._args = blocked_networks
    validate_cidr._validator = 'block_cidr_network'
    return validate_cidr
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号