コード例 #1
0
ファイル: views.py プロジェクト: carriercomm/ssadmin
def get_ip_details_in_specific_range(request, subscriber):  # @UndefinedVariable
    ip_address  = request.GET.get('ip_address')
    start_date  = request.GET.get('date_from')
    end_date    = request.GET.get('date_to')
    ip_details  = IpDetails.objects.filter(ip_address=ip_address)
    ip_address  = ip_details[0].id
    actual_start_date, actual_end_date = _get_date_from_timestamp_inner(request, start_date, end_date)
    start_date, end_date = convert_date_specific_to_timezone(subscriber.timezone,
                                                             actual_start_date,
                                                             actual_end_date)

    diff        = end_date - start_date
    show_time   = True if diff.days < 3 else False
    hourly_message = hourly_date_available_message_display(start_date)
    ip_line_graph_date = [] # Name of list to represent X axis for the Line graph in Detailed IP information
    ip_line_graph_hits = [] # Name of list to represent Y axis for the Line graph in Detailed IP information
    line_graph_ip_object = IpAnalysis.objects.filter(sid = subscriber,
                                                     ipaddress = ip_address,
                                                     dt__range = [start_date, end_date])
    for ips in line_graph_ip_object:
        conv_date       =   str(ips.dt)
        totalrequests   =   json.dumps(ips.totalrequests)
        ip_line_graph_date.append(conv_date)
        ip_line_graph_hits.append(totalrequests)

    ip_line_graph_date = convert_tz_tailored_dates_in_list_to_displayable_date(subscriber.timezone, ip_line_graph_date)
    ip_line_graph_date, ip_line_graph_hits = optimize_data_based_on_number_of_days(ip_line_graph_date, ip_line_graph_hits, show_time)
    single_hour_data   = True if len(ip_line_graph_date) == 1 else False #Checks for entries for a single hour in single day
    data = {'ip_line_graph_date' : ip_line_graph_date,
            'ip_line_graph_hits' : ip_line_graph_hits,
            'single_hour_data'   : single_hour_data,
            'hourly_message'     : hourly_message}
    return HttpResponse(json.dumps(data), mimetype='application/json')
コード例 #2
0
ファイル: views.py プロジェクト: carriercomm/ssadmin
def get_base_results_for_traffic_analysis(request, subscriber):
    start_date_utc  = request.GET.get('start_date')
    end_date_utc    = request.GET.get('end_date')

    start_date, end_date = _get_date_from_timestamp(request, start_date_utc, end_date_utc)
    start_date, end_date = convert_date_specific_to_timezone(subscriber.timezone, start_date, end_date)

    diff        = end_date - start_date
    show_time   = False if diff.days > 0 else True
    return complete_traffic_analysis(subscriber, start_date, end_date), show_time, start_date, end_date
コード例 #3
0
ファイル: views.py プロジェクト: Cloudxtreme/ssadmin
def get_base_results_for_traffic_analysis(request, subscriber):
    start_date_utc = request.GET.get('start_date')
    end_date_utc = request.GET.get('end_date')

    start_date, end_date = _get_date_from_timestamp(request, start_date_utc,
                                                    end_date_utc)
    start_date, end_date = convert_date_specific_to_timezone(
        subscriber.timezone, start_date, end_date)

    diff = end_date - start_date
    show_time = False if diff.days > 0 else True
    return complete_traffic_analysis(subscriber, start_date,
                                     end_date), show_time, start_date, end_date
コード例 #4
0
ファイル: user_analysis.py プロジェクト: carriercomm/ssadmin
def get_base_results_for_user_analysis_excel(request, subscriber):
    start_date_utc       = request.GET.get('date_from')
    end_date_utc         = request.GET.get('date_to')
    start_date, end_date = _get_date_from_timestamp(request, start_date_utc, end_date_utc)

    search_user_id       = None

    start_date, end_date = convert_date_specific_to_timezone(subscriber.timezone, start_date, end_date)
    user_analysis_data, query   = get_user_analysis_details(subscriber,
                                                            search_user_id,
                                                            start_date,
                                                            end_date)
    x, y, paginator = pagination_for_user_analysis_page(user_analysis_data, query, 1)#x, y parameters are dummy and not intented to use anywhere
    paginator = flattening_results_of_paginated_objects(paginator.object_list, query)
    result = {'user_ip_analysis': paginator, }
    return result
コード例 #5
0
def list_user_analysis_details(request, subscriber):
    page_no = request.GET.get('page', 1)

    start_date_utc = request.GET.get('date_from')
    end_date_utc = request.GET.get('date_to')

    start_date, end_date = _get_date_from_timestamp(request, start_date_utc,
                                                    end_date_utc)
    form = UserAnalysisSearchForm(request.GET)

    search_user_id = None

    if form.is_valid():
        search_user_id = form.cleaned_data['user_id'].strip()

    start_date, end_date = convert_date_specific_to_timezone(
        subscriber.timezone, start_date, end_date)

    # Call service layer to fetch the details
    data, query = get_user_analysis_details(subscriber, search_user_id,
                                            start_date, end_date)

    user_analysis_details_table, user_analysis_details, z = pagination_for_user_analysis_page(
        data, query, page_no)

    search = False
    if any([search_user_id]):
        search = True

    can_edit = any(is_admin(request.user))
    is_monitor = is_monitor_mode(subscriber, request.user)
    is_demo_user = is_demo_user_account(request.user)
    authorized_page_list = get_authorized_pages(subscriber)

    return render(
        request, 'user_analysis.html', {
            'user_analysis_details_table': user_analysis_details_table,
            'search_form': form,
            'user_analysis_details': user_analysis_details,
            'can_edit': can_edit,
            'is_demo_user': is_demo_user,
            'is_monitor': is_monitor,
            'search': search,
            'auth_pages': authorized_page_list
        })
コード例 #6
0
ファイル: service.py プロジェクト: Cloudxtreme/ssadmin
def get_base_results_for_aggregator_analysis_excel(request, subscriber):
    """
    This function accepts the "Start Date" and "End Date" and returns the corresponding Aggreggator analysis values
    which is then send to excel_view_aggregator_ip_analysis for excel sheet value population.
    """
    start_date_utc       = request.GET.get('date_from')
    end_date_utc         = request.GET.get('date_to')
    start_date, end_date = _get_date_from_timestamp(request, start_date_utc, end_date_utc)

    search_ip_address       = None
    search_aggregator_name  = None

    start_date, end_date = convert_date_specific_to_timezone(subscriber.timezone, start_date, end_date)
    aggregator_ip_analysis_data = get_aggregator_analysis_details(subscriber,
                                                                  search_ip_address,
                                                                  search_aggregator_name,
                                                                  start_date,
                                                                  end_date)
    result = {'aggregator_ip_analysis': aggregator_ip_analysis_data, }
    return result
コード例 #7
0
ファイル: views.py プロジェクト: Cloudxtreme/ssadmin
def get_ip_details_in_specific_range(request,
                                     subscriber):  # @UndefinedVariable
    ip_address = request.GET.get('ip_address')
    start_date = request.GET.get('date_from')
    end_date = request.GET.get('date_to')
    ip_details = IpDetails.objects.filter(ip_address=ip_address)
    ip_address = ip_details[0].id
    actual_start_date, actual_end_date = _get_date_from_timestamp_inner(
        request, start_date, end_date)
    start_date, end_date = convert_date_specific_to_timezone(
        subscriber.timezone, actual_start_date, actual_end_date)

    diff = end_date - start_date
    show_time = True if diff.days < 3 else False
    hourly_message = hourly_date_available_message_display(start_date)
    ip_line_graph_date = [
    ]  # Name of list to represent X axis for the Line graph in Detailed IP information
    ip_line_graph_hits = [
    ]  # Name of list to represent Y axis for the Line graph in Detailed IP information
    line_graph_ip_object = IpAnalysis.objects.filter(
        sid=subscriber, ipaddress=ip_address, dt__range=[start_date, end_date])
    for ips in line_graph_ip_object:
        conv_date = str(ips.dt)
        totalrequests = json.dumps(ips.totalrequests)
        ip_line_graph_date.append(conv_date)
        ip_line_graph_hits.append(totalrequests)

    ip_line_graph_date = convert_tz_tailored_dates_in_list_to_displayable_date(
        subscriber.timezone, ip_line_graph_date)
    ip_line_graph_date, ip_line_graph_hits = optimize_data_based_on_number_of_days(
        ip_line_graph_date, ip_line_graph_hits, show_time)
    single_hour_data = True if len(
        ip_line_graph_date
    ) == 1 else False  #Checks for entries for a single hour in single day
    data = {
        'ip_line_graph_date': ip_line_graph_date,
        'ip_line_graph_hits': ip_line_graph_hits,
        'single_hour_data': single_hour_data,
        'hourly_message': hourly_message
    }
    return HttpResponse(json.dumps(data), mimetype='application/json')
コード例 #8
0
ファイル: user_analysis.py プロジェクト: carriercomm/ssadmin
def list_user_analysis_details(request, subscriber):
    page_no = request.GET.get('page', 1)

    start_date_utc  = request.GET.get('date_from')
    end_date_utc    = request.GET.get('date_to')

    start_date, end_date = _get_date_from_timestamp(request, start_date_utc, end_date_utc)
    form = UserAnalysisSearchForm(request.GET)

    search_user_id   = None

    if form.is_valid():
        search_user_id   = form.cleaned_data['user_id'].strip()

    start_date, end_date = convert_date_specific_to_timezone(subscriber.timezone, start_date, end_date)

    # Call service layer to fetch the details
    data, query = get_user_analysis_details(subscriber, search_user_id, start_date, end_date)

    user_analysis_details_table, user_analysis_details, z  = pagination_for_user_analysis_page(data, query, page_no)

    search = False
    if any([search_user_id]):
        search = True

    can_edit                = any(is_admin(request.user))
    is_monitor              = is_monitor_mode(subscriber,request.user)
    is_demo_user            = is_demo_user_account(request.user)
    authorized_page_list    = get_authorized_pages(subscriber)

    return render(request,
                  'user_analysis.html',
                  {'user_analysis_details_table'    : user_analysis_details_table,
                   'search_form'                    : form,
                   'user_analysis_details'          : user_analysis_details,
                   'can_edit'                       : can_edit,
                   'is_demo_user'                   : is_demo_user,
                   'is_monitor'                     : is_monitor,
                   'search'                         : search,
                   'auth_pages'                     : authorized_page_list
                  })
コード例 #9
0
ファイル: user_analysis.py プロジェクト: Cloudxtreme/ssadmin
def get_base_results_for_user_analysis_excel(request, subscriber):
    start_date_utc = request.GET.get('date_from')
    end_date_utc = request.GET.get('date_to')
    start_date, end_date = _get_date_from_timestamp(request, start_date_utc,
                                                    end_date_utc)

    search_user_id = None

    start_date, end_date = convert_date_specific_to_timezone(
        subscriber.timezone, start_date, end_date)
    user_analysis_data, query = get_user_analysis_details(
        subscriber, search_user_id, start_date, end_date)
    x, y, paginator = pagination_for_user_analysis_page(
        user_analysis_data, query,
        1)  #x, y parameters are dummy and not intented to use anywhere
    paginator = flattening_results_of_paginated_objects(
        paginator.object_list, query)
    result = {
        'user_ip_analysis': paginator,
    }
    return result
コード例 #10
0
ファイル: views.py プロジェクト: Cloudxtreme/ssadmin
def get_base_results_for_ip_analysis_excel(request, subscriber):
    start_date_utc = request.GET.get('date_from')
    end_date_utc = request.GET.get('date_to')
    start_date, end_date = _get_date_from_timestamp(request, start_date_utc,
                                                    end_date_utc)

    search_ip_address = None
    search_country_name = None
    search_isp = None
    search_city_name = None
    search_status = None

    start_date, end_date = convert_date_specific_to_timezone(
        subscriber.timezone, start_date, end_date)
    # Call service layer to fetch the details
    data = ip_analysis_details_service.get_ip_analysis_details(
        subscriber, search_ip_address, search_country_name, search_isp,
        search_city_name, search_status, start_date, end_date)
    result = {
        'ip_analysis': data,
    }
    return result
コード例 #11
0
ファイル: views.py プロジェクト: carriercomm/ssadmin
def get_base_results_for_ip_analysis_excel(request, subscriber):
    start_date_utc  = request.GET.get('date_from')
    end_date_utc    = request.GET.get('date_to')
    start_date, end_date = _get_date_from_timestamp(request, start_date_utc, end_date_utc)


    search_ip_address   = None
    search_country_name = None
    search_isp          = None
    search_city_name    = None
    search_status       = None

    start_date, end_date = convert_date_specific_to_timezone(subscriber.timezone, start_date, end_date)
    # Call service layer to fetch the details
    data = ip_analysis_details_service.get_ip_analysis_details(subscriber,
                                                               search_ip_address,
                                                               search_country_name,
                                                               search_isp,
                                                               search_city_name,
                                                               search_status,
                                                               start_date,
                                                               end_date)
    result = {'ip_analysis': data, }
    return result
コード例 #12
0
ファイル: views.py プロジェクト: Cloudxtreme/ssadmin
def list_aggregator_analysis_details(request, subscriber):
    """
    This Function is responsible to provide Aggregator list details for the landing page of Aggregator IP Analysis
    """
    page_no = request.GET.get('page', 1)

    start_date_utc = request.GET.get('date_from')
    end_date_utc = request.GET.get('date_to')

    start_date, end_date = _get_date_from_timestamp(request, start_date_utc,
                                                    end_date_utc)
    form = AggregatorAnalysisSearchForm(request.GET)

    search_ip_address = None
    search_aggregator_name = None

    if form.is_valid():
        search_ip_address = form.cleaned_data['ip_address'].strip()
        search_aggregator_name = form.cleaned_data['aggregator_name'].strip()

    start_date, end_date = convert_date_specific_to_timezone(
        subscriber.timezone, start_date, end_date)

    # Call service layer to fetch the details
    data = get_aggregator_analysis_details(subscriber, search_ip_address,
                                           search_aggregator_name, start_date,
                                           end_date)

    paginator = Paginator(data, 15)
    aggregator_analysis_details = None
    try:
        aggregator_analysis_details = paginator.page(page_no)
    except PageNotAnInteger:
        aggregator_analysis_details = paginator.page(page_no)
    except EmptyPage:
        aggregator_analysis_details = paginator.page(paginator.num_pages)

    aggregator_analysis_details_table = []  # List of dicts for HTML rendering
    for aggregator_analysis_detail in aggregator_analysis_details:
        ip_address = AggregatorDetails.objects.get(
            pk=aggregator_analysis_detail['ip_address'])
        aggregator_analysis_details_dict = {
            'id': 0,
            'ip_address': ip_address.ip_address,
            'aggregator_name': ip_address.aggregator_name,
            'bot_hits': aggregator_analysis_detail['total_requests']
        }

        aggregator_analysis_details_table.append(
            aggregator_analysis_details_dict)

    search = False
    if any([search_ip_address, search_aggregator_name]):
        search = True

    can_edit = any(is_admin(request.user))
    is_monitor = is_monitor_mode(subscriber, request.user)
    is_demo_user = is_demo_user_account(request.user)
    authorized_page_list = get_authorized_pages(subscriber)
    return render(
        request, 'aggregator_analysis.html', {
            'search_from': form,
            'aggregator_analysis_details': aggregator_analysis_details,
            'aggregator_analysis_details_table':
            aggregator_analysis_details_table,
            'can_edit': can_edit,
            'is_demo_user': is_demo_user,
            'is_monitor': is_monitor,
            'search': search,
            'auth_pages': authorized_page_list
        })
コード例 #13
0
ファイル: views.py プロジェクト: carriercomm/ssadmin
def list_ip_analysis_details(request, subscriber):  # @UndefinedVariable
    page_no = request.GET.get('page', 1)

    start_date_utc  = request.GET.get('date_from')
    end_date_utc    = request.GET.get('date_to')

    start_date, end_date = _get_date_from_timestamp(request, start_date_utc, end_date_utc)
    form = IpAnalysisSearchForm(request.GET)

    search_ip_address   = None
    search_country_name = None
    search_isp          = None
    search_city_name    = None

    if form.is_valid():
        search_ip_address   = form.cleaned_data['ip_address'].strip()
        search_country_name = form.cleaned_data['country_name'].strip()
        search_isp          = form.cleaned_data['isp'].strip()
        search_city_name    = form.cleaned_data['city_name'].strip()
        search_status       = form.cleaned_data['status'].strip()

    start_date, end_date = convert_date_specific_to_timezone(subscriber.timezone, start_date, end_date)

    diff        = end_date - start_date
    show_time   = True if diff.days < 3 else False

    # Call service layer to fetch the details
    data = ip_analysis_details_service.get_ip_analysis_details(subscriber,
                                                               search_ip_address,
                                                               search_country_name,
                                                               search_isp,
                                                               search_city_name,
                                                               search_status,
                                                               start_date,
                                                               end_date)

    paginator = Paginator(data, 15)
    ip_analysis_details = None
    try:
        ip_analysis_details = paginator.page(page_no)
    except PageNotAnInteger:
        ip_analysis_details = paginator.page(page_no)
    except EmptyPage:
        ip_analysis_details = paginator.page(paginator.num_pages)

    ip_analysis_details_table = [] # List of dicts for HTML rendering
    for ip_analysis_detail in ip_analysis_details:
        ipaddress = IpDetails.objects.get(pk = ip_analysis_detail['ipaddress'])
        ip_action_form, ip_line_graph_date, ip_line_graph_hits, ip_action, expiry_date, hourly_message = individual_ip_address_details(subscriber,
                                                                               ipaddress.id,
                                                                               start_date,
                                                                               end_date,
                                                                               show_time)
        ip_address_status = ip_address_clean_or_malicious(ipaddress, subscriber)
        single_hour_data   = True if len(ip_line_graph_date) == 1 else False #Checks for entries for a single hour in single day
        ip_analysis_details_dict = {    'id'                      :   0,
                                        'ip_address'              :   ipaddress.ip_address,
                                        'country_name'            :   ipaddress.country_name,
                                        'isp'                     :   ipaddress.isp,
                                        'ip_action_form'          :   ip_action_form,
                                        'ip_action'               :   ip_action,
                                        'expiry_date'             :   expiry_date,
                                        'city_name'               :   ipaddress.city_name,
                                        'bot_hits'                :   ip_analysis_detail['totalrequests'],
                                        'ip_line_graph_date'      :   ip_line_graph_date,
                                        'ip_line_graph_hits'      :   ip_line_graph_hits,
                                        'single_hour_data'        :   single_hour_data,
                                        'ip_address_status'       :   ip_address_status,
                                        'bad_bot_traffic_details' :   get_bad_bot_traffic_details(ip_analysis_detail)
                                    }

        ip_analysis_details_table.append(ip_analysis_details_dict)
    search = False
    if any([search_ip_address, search_country_name, search_isp, search_city_name, search_status]):
        search = True

    can_edit        = any(is_admin(request.user))
    is_monitor      = is_monitor_mode(subscriber,request.user)
    is_demo_user    = is_demo_user_account(request.user)
    authorized_page_list = get_authorized_pages(subscriber)
    return render(request,
                  'ip_analysis.html',
                  {'ip_analysis_details_table'  : ip_analysis_details_table,
                   'search_from'                : form,
                   'ip_analysis_details'        : ip_analysis_details,
                   'can_edit'                   : can_edit,
                   'is_demo_user'               : is_demo_user,
                   'is_monitor'                 : is_monitor,
                   'search'                     : search,
                   'auth_pages'                 : authorized_page_list
                  })
コード例 #14
0
ファイル: views.py プロジェクト: Cloudxtreme/ssadmin
def list_ip_analysis_details(request, subscriber):  # @UndefinedVariable
    page_no = request.GET.get('page', 1)

    start_date_utc = request.GET.get('date_from')
    end_date_utc = request.GET.get('date_to')

    start_date, end_date = _get_date_from_timestamp(request, start_date_utc,
                                                    end_date_utc)
    form = IpAnalysisSearchForm(request.GET)

    search_ip_address = None
    search_country_name = None
    search_isp = None
    search_city_name = None

    if form.is_valid():
        search_ip_address = form.cleaned_data['ip_address'].strip()
        search_country_name = form.cleaned_data['country_name'].strip()
        search_isp = form.cleaned_data['isp'].strip()
        search_city_name = form.cleaned_data['city_name'].strip()
        search_status = form.cleaned_data['status'].strip()

    start_date, end_date = convert_date_specific_to_timezone(
        subscriber.timezone, start_date, end_date)

    diff = end_date - start_date
    show_time = True if diff.days < 3 else False

    # Call service layer to fetch the details
    data = ip_analysis_details_service.get_ip_analysis_details(
        subscriber, search_ip_address, search_country_name, search_isp,
        search_city_name, search_status, start_date, end_date)

    paginator = Paginator(data, 15)
    ip_analysis_details = None
    try:
        ip_analysis_details = paginator.page(page_no)
    except PageNotAnInteger:
        ip_analysis_details = paginator.page(page_no)
    except EmptyPage:
        ip_analysis_details = paginator.page(paginator.num_pages)

    ip_analysis_details_table = []  # List of dicts for HTML rendering
    for ip_analysis_detail in ip_analysis_details:
        ipaddress = IpDetails.objects.get(pk=ip_analysis_detail['ipaddress'])
        ip_action_form, ip_line_graph_date, ip_line_graph_hits, ip_action, expiry_date, hourly_message = individual_ip_address_details(
            subscriber, ipaddress.id, start_date, end_date, show_time)
        ip_address_status = ip_address_clean_or_malicious(
            ipaddress, subscriber)
        single_hour_data = True if len(
            ip_line_graph_date
        ) == 1 else False  #Checks for entries for a single hour in single day
        ip_analysis_details_dict = {
            'id':
            0,
            'ip_address':
            ipaddress.ip_address,
            'country_name':
            ipaddress.country_name,
            'isp':
            ipaddress.isp,
            'ip_action_form':
            ip_action_form,
            'ip_action':
            ip_action,
            'expiry_date':
            expiry_date,
            'city_name':
            ipaddress.city_name,
            'bot_hits':
            ip_analysis_detail['totalrequests'],
            'ip_line_graph_date':
            ip_line_graph_date,
            'ip_line_graph_hits':
            ip_line_graph_hits,
            'single_hour_data':
            single_hour_data,
            'ip_address_status':
            ip_address_status,
            'bad_bot_traffic_details':
            get_bad_bot_traffic_details(ip_analysis_detail)
        }

        ip_analysis_details_table.append(ip_analysis_details_dict)
    search = False
    if any([
            search_ip_address, search_country_name, search_isp,
            search_city_name, search_status
    ]):
        search = True

    can_edit = any(is_admin(request.user))
    is_monitor = is_monitor_mode(subscriber, request.user)
    is_demo_user = is_demo_user_account(request.user)
    authorized_page_list = get_authorized_pages(subscriber)
    return render(
        request, 'ip_analysis.html', {
            'ip_analysis_details_table': ip_analysis_details_table,
            'search_from': form,
            'ip_analysis_details': ip_analysis_details,
            'can_edit': can_edit,
            'is_demo_user': is_demo_user,
            'is_monitor': is_monitor,
            'search': search,
            'auth_pages': authorized_page_list
        })
コード例 #15
0
ファイル: views.py プロジェクト: carriercomm/ssadmin
def list_aggregator_analysis_details(request, subscriber):
    """
    This Function is responsible to provide Aggregator list details for the landing page of Aggregator IP Analysis
    """
    page_no = request.GET.get('page', 1)

    start_date_utc  = request.GET.get('date_from')
    end_date_utc    = request.GET.get('date_to')

    start_date, end_date = _get_date_from_timestamp(request, start_date_utc, end_date_utc)
    form = AggregatorAnalysisSearchForm(request.GET)

    search_ip_address       = None
    search_aggregator_name  = None

    if form.is_valid():
        search_ip_address       = form.cleaned_data['ip_address'].strip()
        search_aggregator_name  = form.cleaned_data['aggregator_name'].strip()

    start_date, end_date = convert_date_specific_to_timezone(subscriber.timezone, start_date, end_date)

    # Call service layer to fetch the details
    data = get_aggregator_analysis_details(subscriber,
                                           search_ip_address,
                                           search_aggregator_name,
                                           start_date,
                                           end_date)

    paginator = Paginator(data, 15)
    aggregator_analysis_details = None
    try:
        aggregator_analysis_details = paginator.page(page_no)
    except PageNotAnInteger:
        aggregator_analysis_details = paginator.page(page_no)
    except EmptyPage:
        aggregator_analysis_details = paginator.page(paginator.num_pages)

    aggregator_analysis_details_table = [] # List of dicts for HTML rendering
    for aggregator_analysis_detail in aggregator_analysis_details:
        ip_address = AggregatorDetails.objects.get(pk = aggregator_analysis_detail['ip_address'])
        aggregator_analysis_details_dict = {'id'                :   0,
                                            'ip_address'        :   ip_address.ip_address,
                                            'aggregator_name'   :   ip_address.aggregator_name,
                                            'bot_hits'          :   aggregator_analysis_detail['total_requests']}

        aggregator_analysis_details_table.append(aggregator_analysis_details_dict)

    search = False
    if any([search_ip_address, search_aggregator_name]):
        search = True

    can_edit        = any(is_admin(request.user))
    is_monitor      = is_monitor_mode(subscriber,request.user)
    is_demo_user    = is_demo_user_account(request.user)
    authorized_page_list = get_authorized_pages(subscriber)
    return render(request,
                  'aggregator_analysis.html',
                  {'search_from'                      : form,
                   'aggregator_analysis_details'      : aggregator_analysis_details,
                   'aggregator_analysis_details_table': aggregator_analysis_details_table,
                   'can_edit'                         : can_edit,
                   'is_demo_user'                     : is_demo_user,
                   'is_monitor'                       : is_monitor,
                   'search'                           : search,
                   'auth_pages'                       : authorized_page_list
                  })