用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模块或库,能够让我测量这个网络流量。
虽然我已经做了一些研究,比如如何测量网络吞吐量,还有监控和限制应用程序的网络流量,以及使用pcapy监控网络流量,但这些似乎都不是我想要的功能,不管它们用什么语言。
有没有什么想法可以实现这个功能呢?
1 个回答
26
要查看你电脑上的网络流量,我推荐你看看这个叫 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
命令。