Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторная работа по "Программированию"

Автор:   •  Май 6, 2019  •  Лабораторная работа  •  667 Слов (3 Страниц)  •  454 Просмотры

Страница 1 из 3

Лабораторная работа №1.

Цель: Разработать программу, считывающую температуру процессора и выводящую её на экран.

Лабораторная работа №2.

Цель: разработать программу, отслеживающую входящий трафик и выводящую на экран предупреждение при превышении определённого значения.

Лабораторная работа №3.

Цель: Передать информацию о температуре ЦП и превышении входящего трафика на мобильное устройство.

Примечание: для решения этой задачи я воспользовался ботом для Telegram.

Примечание: так как эти три программы реализуются в одном коде, я принял решение не разбивать его и не копировать код несколько раз.

import psutil

import sys

from time import sleep, time

from botsender import send_warning

sleep_time = 1 # секунды

traffic_monitor_period = 60  # одна минута

traffic_monitor_threshold = 10**9  # один гигабайт в байтах

temperature_threshold = 50

def do_main_program():

    """

    опрашивает сенсоры температуры и измеряет скаченный траффик

    в случае превышения температуры отправляет предупреждение (пороги отправки берутся из характеристик сенсоров)

    в случае превышения траффика загрузки отправляет сообщение о ддос атаке (порог - один гигабайт в минуту)

    TODO: 'передавать id девайса который перегрелся'

    """

    send_warning(type_of_message='starting', measure=-1)

    initial_bytes_recv = psutil.net_io_counters().bytes_recv

    initial_bytes_recv_time = time()

   

    while True:

        temps = psutil.sensors_temperatures()

        for name, entries in temps.items():

            for entry in entries :

                if float(entry.current) >= float(temperature_threshold) and float(entry.current) < float(entry.critical):

                    device_name = entry.label or name

                   

                    send_warning('temperature_high', entry.current, name = device_name)

                if float(entry.current) == float(entry.critical):

                    send_warning(type_of_message='temperature_critical', measure=entry.current)

        if time()-initial_bytes_recv_time >= traffic_monitor_period:

            traffic_delta = psutil.net_io_counters().bytes_recv- initial_bytes_recv

            if traffic_delta >= traffic_monitor_threshold:

                send_warning(type_of_message='traffic_overload', measure=traffic_delta)

                initial_bytes_recv = psutil.net_io_counters().bytes_recv

            initial_bytes_recv_time = time()

        sleep(sleep_time)

    do_main_program()

...

Скачать:   txt (5.5 Kb)   pdf (141.4 Kb)   docx (11.5 Kb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club