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')
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
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
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
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 })
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
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')
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 })
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
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
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
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 })
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 })
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 })
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 })