Измерение сетевых данных с помощью Python - PullRequest
11 голосов
/ 22 января 2012

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

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

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, который позволит мне измерить это.

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

Любые идеи о том, какреализовать это?

1 Ответ

22 голосов
/ 22 января 2012

Чтобы проверить сетевой трафик в вашей системе, я рекомендую вам заглянуть в 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)

и, если вы используете linux / unix, используйте модуль subprocess для отправки shutdown / reboot команда.

...