def range_usage_ajax(request):
    start = request.GET.get('start', None)
    end = request.GET.get('end', None)
    start_ip_type, _ = resolve_ip_type(start)
    end_ip_type, _ = resolve_ip_type(end)
    errors = None
    if start_ip_type != end_ip_type or start_ip_type is None:
        errors = "Couldn't resolve ip_type"
        return render(request, 'range/range_usage_ajax.html', {
            'errors': errors,
        })
    rusage = range_usage(start, end, start_ip_type, get_objects=True)

    def translate_ip(ip_i, *args):
        return int_to_ip(ip_i, start_ip_type)

    return render(
        request, 'range/range_usage_ajax.html', {
            'errors': errors,
            'start': start,
            'end': end,
            'start_i': int_to_ip(start, start_ip_type),
            'end_i': int_to_ip(end, end_ip_type),
            'rusage': rusage,
            'translate_ip': translate_ip
        })
def range_usage_ajax(request):
    start = request.GET.get('start', None)
    end = request.GET.get('end', None)
    start_ip_type, _ = resolve_ip_type(start)
    end_ip_type, _ = resolve_ip_type(end)
    errors = None
    if start_ip_type != end_ip_type or start_ip_type is None:
        errors = "Couldn't resolve ip_type"
        return render(request, 'range/range_usage_ajax.html', {
            'errors': errors,
        })
    rusage = range_usage(start, end, start_ip_type, get_objects=True)

    def translate_ip(ip_i, *args):
        return int_to_ip(ip_i, start_ip_type)

    return render(request, 'range/range_usage_ajax.html', {
        'errors': errors,
        'start': start,
        'end': end,
        'start_i': int_to_ip(start, start_ip_type),
        'end_i': int_to_ip(end, end_ip_type),
        'rusage': rusage,
        'translate_ip': translate_ip
    })
Exemple #3
0
def build_range_qsets(range_):
    try:
        start, end = range_.split(",")
    except ValueError:
        raise BadDirective("Specify a range using the format: start,end")
    start_ip_type, _ = resolve_ip_type(start)
    end_ip_type, _ = resolve_ip_type(end)
    if start_ip_type != end_ip_type or not start_ip_type or not end_ip_type:
        raise BadDirective("Couldn not resolve IP type of {0} and " "{1}".format(start, end))
    try:
        istart, iend, ipf_q = start_end_filter(start, end, start_ip_type)
    except (ValidationError, ipaddr.AddressValueError), e:
        raise BadDirective(str(e))
Exemple #4
0
def build_range_qsets(range_):
    try:
        start, end = range_.split(',')
    except ValueError:
        raise BadDirective("Specify a range using the format: start,end")
    start_ip_type, _ = resolve_ip_type(start)
    end_ip_type, _ = resolve_ip_type(end)
    if start_ip_type != end_ip_type or not start_ip_type or not end_ip_type:
        raise BadDirective("Couldn not resolve IP type of {0} and "
                           "{1}".format(start, end))
    try:
        istart, iend, ipf_q = start_end_filter(start, end, start_ip_type)
    except (ValidationError, ipaddr.AddressValueError), e:
        raise BadDirective(str(e))
Exemple #5
0
def build_network_qsets(network_str):
    ip_type, Klass = resolve_ip_type(network_str)
    try:
        network = Klass(network_str)
        ipf = IPFilter(network.network, network.broadcast, ip_type)
    except (ipaddr.AddressValueError, ipaddr.NetmaskValueError):
        raise BadDirective("{0} isn't a valid network.".format(network_str))
    return build_ipf_qsets(ipf.Q)
Exemple #6
0
def build_network_qsets(network_str):
    ip_type, Klass = resolve_ip_type(network_str)
    try:
        network = Klass(network_str)
        ipf = IPFilter(network.network, network.broadcast, ip_type)
    except (ipaddr.AddressValueError, ipaddr.NetmaskValueError):
        raise BadDirective("{0} isn't a valid network.".format(network_str))
    return build_ipf_qsets(ipf.Q)
def build_ip_qsets(ip_str):
    ip_type, Klass = resolve_ip_type(ip_str)
    try:
        ip = Klass(ip_str)
        ip_upper, ip_lower = one_to_two(int(ip))
    except (ipaddr.AddressValueError):
        raise BadDirective("{0} isn't a valid "
                           "IP address.".format(ip_str))
    return build_ipf_qsets(Q(ip_upper=ip_upper, ip_lower=ip_lower))
Exemple #8
0
def build_ip_qsets(ip_str):
    """
    Possible objects returned:
        * A/PTR/SREG
        * Network
        * Vlan
        * Site
    """
    ip_type, Klass = resolve_ip_type(ip_str)

    NetworkCls = ipaddr.IPv4Network if ip_type == "4" else ipaddr.IPv6Network
    try:
        ip = NetworkCls(ip_str).network
        network_str = str(NetworkCls(ip_str))
    except ipaddr.AddressValueError:
        raise BadDirective("{0} isn't a valid " "IP address.".format(ip_str))
    except ipaddr.NetmaskValueError, e:
        raise BadDirective("The netmask '{0}' doesn't make any sense.".format(e))
Exemple #9
0
def build_ip_qsets(ip_str):
    """
    Possible objects returned:
        * A/PTR/SREG
        * Network
        * Vlan
        * Site
    """
    ip_type, Klass = resolve_ip_type(ip_str)

    NetworkCls = ipaddr.IPv4Network if ip_type == '4' else ipaddr.IPv6Network
    try:
        ip = NetworkCls(ip_str).network
        network_str = str(NetworkCls(ip_str))
    except ipaddr.AddressValueError:
        raise BadDirective("{0} isn't a valid " "IP address.".format(ip_str))
    except ipaddr.NetmaskValueError, e:
        raise BadDirective(
            "The netmask '{0}' doesn't make any sense.".format(e))
def ip_to_range(ip):
    """Attempt to map an IP into a range"""
    ip_type = resolve_ip_type(ip)

    ip_upper, ip_lower = one_to_two(ip_to_int(ip, ip_type[0]))
    # If it's within the uppers, it's definitely within the lowers
    upper_q = Q(
        ~Q(start_upper=F('end_upper')),
        start_upper__lte=ip_upper, end_upper__gte=ip_upper
    )

    # If the uppers match, look in the lowers
    lower_q = Q(
        Q(start_upper=F('end_upper')),
        start_lower__lte=ip_lower, end_lower__gte=ip_lower
    )
    try:
        return Range.objects.get(upper_q | lower_q)
    except Range.DoesNotExist:
        pass
Exemple #11
0
 def clean(self, *args, **kwargs):
     self.instance.ip_type = resolve_ip_type(self.cleaned_data['ip_str'])[0]
     self.instance.label, self.instance.domain = ensure_label_domain(
         self.cleaned_data['fqdn']
     )
     return super(StaticRegAutoForm, self).clean(*args, **kwargs)