用Python的psutil库监控网络连接和流量
发布时间:2023-12-11 16:10:31
psutil是一个跨平台的Python库,可以轻松地获取系统信息,包括网络连接和流量。下面是一个使用psutil库监控网络连接和流量的例子。
首先,我们需要安装psutil库。可以使用pip命令来安装:
pip install psutil
接下来,我们将导入psutil库和其他必要的模块:
import psutil import time
我们将使用while循环来不断获取并显示网络连接和流量信息。下面是一个简单的示例:
while True:
# 获取网络连接信息
connections = psutil.net_connections()
print("网络连接信息:")
for conn in connections:
print(f"本地地址:{conn.laddr.ip}:{conn.laddr.port} 远程地址:{conn.raddr.ip}:{conn.raddr.port} 状态:{conn.status}")
# 获取网络流量信息
net_io = psutil.net_io_counters()
print(f"入站流量:{net_io.bytes_recv} 字节 出站流量:{net_io.bytes_sent} 字节")
# 等待1秒钟
time.sleep(1)
在上面的例子中,我们首先使用psutil.net_connections()函数获取当前所有的网络连接信息。通过laddr和raddr属性,我们可以获取本地地址和远程地址信息,通过status属性,我们可以获取连接的状态。
然后,我们使用psutil.net_io_counters()函数获取当前的网络流量信息。通过bytes_recv和bytes_sent属性,我们可以获取入站流量和出站流量的字节数。这个函数返回的值是累加的总字节数,我们可以通过在两次调用之间等待一段时间,并计算其差值来获取实时流量。
最后,通过调用time.sleep(1)函数等待1秒钟,以使循环每秒钟执行一次。
运行这个程序,你将会看到类似下面的输出:
网络连接信息: 本地地址:192.168.0.1:80 远程地址:192.168.0.2:2345 状态:ESTABLISHED 本地地址:192.168.0.1:443 远程地址:192.168.0.3:1234 状态:CLOSE_WAIT 入站流量:100000 字节 出站流量:50000 字节
上面的输出显示了当前系统的网络连接信息和实时的网络流量。
以上是一个简单的使用psutil库监控网络连接和流量的例子。你可以根据自己的需求对代码进行修改和扩展。希望这个例子对你有所帮助!
