使用Python测量网络数据

nch*_*pmn 11 python networking traffic-measurement

我正在编写一个程序,在一段时间(比如半小时)网络流量低于某个阈值时关闭计算机.

这是我工作的伪代码将给出正确的逻辑:

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
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是允许我测量它的Python模块或库.

虽然我已经对此进行了 各种 研究,但这些似乎并不是我所追求的那种功能,无论他们的语言如何.

有关如何实现这一点的任何想法?

aay*_*ubi 22

要检查系统上的网络流量,建议您查看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)}
>>>
Run Code Online (Sandbox Code Playgroud)

要关闭你的操作系统,如果你在Windows上检查这个:操作系统重启,关机,休眠,睡眠,唤醒(Windows Python)

如果您使用linux/ unix,请使用该subprocess模块发送shutdown/ reboot命令.

  • 请注意,从psutil 3.2.2(至少)开始,此方法的名称为net_io_counters. (7认同)