Измерение сетевых данных с помощью 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, которые позволят мне измерить это.
Хотя я проводил различные исследования в этом, они, похоже, не такие функциональные возможности, как я, независимо от их языка.
Любые идеи о том, как это реализовать?
Ответы
Ответ 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 Python)
и если вы используете linux
/unix
, используйте модуль subprocess
для отправки команды shutdown
/reboot
.