欢迎访问宙启技术站
智能推送

用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()函数获取当前所有的网络连接信息。通过laddrraddr属性,我们可以获取本地地址和远程地址信息,通过status属性,我们可以获取连接的状态。

然后,我们使用psutil.net_io_counters()函数获取当前的网络流量信息。通过bytes_recvbytes_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库监控网络连接和流量的例子。你可以根据自己的需求对代码进行修改和扩展。希望这个例子对你有所帮助!