示例#1
0
文件: views.py 项目: plan1230/nav
def ip_search(request):
    """Controller for ip search"""
    if 'ip_range' in request.GET:
        return ip_do_search(request)

    info_dict = {'form': forms.IpTrackerForm()}
    info_dict.update(IP_DEFAULTS)
    return render(request, 'machinetracker/ip_search.html', info_dict)
示例#2
0
文件: views.py 项目: bj0rns0der/nav
def ip_search(request):
    """Controller for ip search"""
    if 'ip_range' in request.GET or 'prefixid' in request.GET:
        return ip_do_search(request)

    info_dict = {'form': forms.IpTrackerForm()}
    info_dict.update(IP_DEFAULTS)
    return render_to_response('machinetracker/ip_search.html', info_dict,
                              RequestContext(request))
示例#3
0
文件: views.py 项目: Cloudxtreme/nav
def ip_do_search(request):
    """Search cam and arp based on prefixid or ip range"""
    querydict = ProcessInput(request.GET).ip()
    form = forms.IpTrackerForm(querydict)
    tracker = None
    form_data = {}
    row_count = 0
    from_ip = None
    to_ip = None

    if form.is_valid():
        form_data = form.cleaned_data
        ip_range = form.cleaned_data['ip_range']
        from_ip, to_ip = (ip_range[0], ip_range[-1])
        period_filter = form.cleaned_data['period_filter']
        active = inactive = False

        if period_filter in ['active', 'both']:
            active = True
        if period_filter in ['inactive', 'both']:
            inactive = True

        if (to_ip.int() - from_ip.int()) > ADDRESS_LIMIT:
            inactive = False

        ip_result = get_result(form.cleaned_data['days'], from_ip, to_ip,
                               form.cleaned_data['netbios'])
        ip_range = create_ip_range(inactive, from_ip, to_ip, ip_result)
        tracker = create_tracker(active, form.cleaned_data['dns'], inactive,
                                 ip_range, ip_result)
        row_count = sum(len(mac_ip_pair) for mac_ip_pair in tracker.values())

# If the form was valid, but we found no results, display error message
    display_no_results = False
    if form.is_valid() and not row_count:
        display_no_results = True

    info_dict = {
        'form': form,
        'form_data': form_data,
        'ip_tracker': tracker,
        'ip_tracker_count': row_count,
        'subnet_start': unicode(from_ip),
        'subnet_end': unicode(to_ip),
        'display_no_results': display_no_results,
        'colspan': find_colspan('ip', form)
    }
    info_dict.update(IP_DEFAULTS)

    return render_to_response('machinetracker/ip_search.html', info_dict,
                              RequestContext(request))
示例#4
0
def ip_do_search(request):
    """Search CAM and ARP based on IP range"""
    querydict = ProcessInput(request.GET).ip()
    form = forms.IpTrackerForm(querydict)
    tracker = None
    form_data = {}
    row_count = 0
    from_ip = None
    to_ip = None

    if form.is_valid():
        form_data = form.cleaned_data
        ip_range = form.cleaned_data['ip_range']
        from_ip, to_ip = (ip_range[0], ip_range[-1])
        period_filter = form.cleaned_data['period_filter']
        active = inactive = False

        if period_filter in ['active', 'both']:
            active = True
        if period_filter in ['inactive', 'both']:
            inactive = True

        if (to_ip.int() - from_ip.int()) > ADDRESS_LIMIT:
            inactive = False

        ip_result = get_result(
            form.cleaned_data['days'], from_ip, to_ip, form.cleaned_data['netbios']
        )
        ip_range = create_ip_range(inactive, from_ip, to_ip, ip_result)
        tracker = create_tracker(
            active, form.cleaned_data['dns'], inactive, ip_range, ip_result
        )
        row_count = sum(len(mac_ip_pair) for mac_ip_pair in tracker.values())

    info_dict = {
        'form': form,
        'form_data': form_data,
        'ip_tracker': tracker,
        'ip_tracker_count': row_count,
        'subnet_start': six.text_type(from_ip),
        'subnet_end': six.text_type(to_ip),
        'colspan': find_colspan('ip', form),
    }
    info_dict.update(IP_DEFAULTS)

    return render(request, 'machinetracker/ip_search.html', info_dict)