使用Python测量网络数据

时间:2012-01-22 03:03: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

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

虽然我已经done various research,但这些似乎并不是我所追求的功能,无论他们的语言如何。

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

1 个答案:

答案 0 :(得分: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)}
>>>

要关闭您的操作系统,如果您在Windows上,请检查:OS Reboot, Shutdown, Hibernate, Sleep, Wakeup (Windows Python)

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