【问题标题】:Measure Network Data with Python使用 Python 测量网络数据
【发布时间】:2012-01-22 03:03:11
【问题描述】:

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

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

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 参与其中,但无论它们的语言如何,这些似乎都不是我想要的功能。

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

【问题讨论】:

    标签: python networking traffic-measurement


    【解决方案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 上,请检查:OS Reboot, Shutdown, Hibernate, Sleep, Wakeup (Windows Python)

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

    【讨论】:

    • 我会调查的。我没有遇到关机问题,所以为此额外加分。如果一切正常,我会标记为正确的。
    • 这些统计数据是每秒吗?
    • 不,这些是总统计数据。
    • 请注意,从 psutil 3.2.2(至少)开始,此方法的名称是 net_io_counters。
    猜你喜欢
    • 2010-10-08
    • 2020-03-29
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多