Измерение сетевых данных с помощью Python

В настоящее время я пишу программу для выключения компьютера, когда в течение определенного периода времени (скажем, получаса) сетевой трафик ниже определенного порога.

Вот псевдокод, с которым я работал, дает правильную логику:

BEGIN SUBPROGRAM
    loopFlag = True
    Wait 5 minutes    # Allows time for boot and for the machine to settle
    traffic = 0
    WHILE loopFlag = True DO
        FOR sec = 0 to 3600
            traffic += *network.traffic()*
            wait 1 second
        ENDFOR
        IF traffic < trafficThreshold THEN
            loopFlag = False
        ENDIF
    ENDWHILE
    os.ShutDown()
END SUBPROGRAM

Я ищу модуль или библиотеку Python, которые позволят мне это измерить.

Пока я сделал various исследования, мне кажется, что это не та функциональность, которая нужна мне, независимо от их языка.

Есть идеи, как это реализовать?


person nchpmn    schedule 22.01.2012    source источник


Ответы (1)


Чтобы проверить сетевой трафик в вашей системе, я рекомендую вам изучить psutil:

>>> psutil.net_io_counters(pernic=True)
{'lo': iostat(bytes_sent=799953745, bytes_recv=799953745, packets_sent=453698, packets_recv=453698), 
 'eth0': iostat(bytes_sent=734324837, bytes_recv=4163935363, packets_sent=3605828, packets_recv=4096685)}
>>>

А чтобы выключить ОС, если вы работаете в Windows, проверьте следующее: Перезагрузка ОС , Выключение, спящий режим, сон, пробуждение (Windows Python)

и если вы используете _3 _ / _ 4_, используйте модуль subprocess для отправки команды _6 _ / _ 7_.

person aayoubi    schedule 22.01.2012
comment
Я разберусь с этим. У меня не было проблем с выключением, так что дополнительные баллы за это. Отмечу правильно, если все заработает. - person nchpmn; 22.01.2012
comment
Каждый из этих показателей в секунду? - person travis1097; 15.11.2013
comment
Нет, это общая статистика. - person aayoubi; 15.11.2013
comment
Обратите внимание, что с psutil 3.2.2 (по крайней мере) имя этого метода - net_io_counters. - person JP Lodine; 04.11.2015