卧室室内装修设计网站,wordpress添加页脚社交,html5网站开发方案,网红营销推广文章目录 使用Python psutil库获取网络信息安装psutil库获取网络连接信息查看所有网络连接过滤特定状态的连接 获取网络接口信息获取网络IO统计信息实例1实例2 总结 使用Python psutil库获取网络信息
Python的psutil库是一个跨平台库#xff0c;能够方便地获取系统使用情况和… 文章目录 使用Python psutil库获取网络信息安装psutil库获取网络连接信息查看所有网络连接过滤特定状态的连接 获取网络接口信息获取网络IO统计信息实例1实例2 总结 使用Python psutil库获取网络信息
Python的psutil库是一个跨平台库能够方便地获取系统使用情况和运行的进程和系统利用率包括CPU、内存、磁盘、网络等信息。本文将简单介绍如何使用psutil库获取网络信息。
安装psutil库
在开始之前首先需要安装psutil库。可以通过pip命令进行安装
pip install psutil加速安装用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple psutil获取网络连接信息
查看所有网络连接
我们可以使用psutil.net_connections()方法来获取所有网络连接信息。这个方法返回一个列表每个元素都是一个pconn对象该对象表示一个网络连接并有以下属性
fd套接字文件描述符family地址家族type地址类型laddr本地地址raddr远程地址status状态pid创建套接字的进程ID
下面的代码将列出所有网络连接
import psutilconnections psutil.net_connections()for conn in connections:print(conn)过滤特定状态的连接
也可以通过过滤特定状态的连接来查找所需的网络连接。例如要查找所有ESTABLISHED状态的连接可以使用以下代码
import psutilconnections psutil.net_connections()
established_connections [conn for conn in connections if conn.status psutil.CONN_ESTABLISHED]for conn in established_connections:print(conn)获取网络接口信息
psutil库还提供了一个名为net_if_addrs()的函数该函数用于获取网络接口信息。这个函数返回一个字典每个元素都是一个snic对象表示一个网络接口并有以下属性
family地址家族addressIP地址netmask网络掩码broadcast广播地址ptp点对点连接
下面的代码将列出所有网络接口及其详细信息
import psutilinterfaces psutil.net_if_addrs()for name, addrs in interfaces.items():print(fInterface {name}:)for addr in addrs:print(f {addr})信息敏感不予展示
获取网络IO统计信息
psutil库的net_io_counters()函数可以获取网络IO统计信息返回一个pnicstats对象该对象表示一个网络IO统计信息并有以下属性
bytes_sent发送的字节数bytes_recv接收的字节数packets_sent发送的数据包数packets_recv接收的数据包数errin输入错误errout输出错误dropin丢弃的输入数据包dropout丢弃的输出数据包
实例1
下面的代码将列出所有网络接口的网络IO统计信息
import psutilio_stats psutil.net_io_counters(pernicTrue)for name, stats in io_stats.items():print(fInterface {name}:)print(f Bytes sent: {stats.bytes_sent})print(f Bytes received: {stats.bytes_recv})print(f Packets sent: {stats.packets_sent})print(f Packets received: {stats.packets_recv})实例2
下面代码会打印机器上每个网络接口的IP地址、子网掩码和广播地址等信息
import psutiladdrs psutil.net_if_addrs()for interface_name, interface_addresses in addrs.items():for address in interface_addresses:if str(address.family) AddressFamily.AF_INET:print(f Interface: {interface_name} )print(f IP Address: {address.address})print(f Netmask: {address.netmask})print(f Broadcast IP: {address.broadcast})elif str(address.family) AddressFamily.AF_PACKET:print(f Interface: {interface_name} )print(f MAC Address: {address.address})print(f Netmask: {address.netmask})print(f Broadcast MAC: {address.broadcast})信息敏感不予展示
总结
本文详细介绍了如何使用psutil库获取网络信息包括如何查看所有网络连接、过滤特定状态的连接、获取网络接口信息和获取网络IO统计信息。这些功能使得psutil库成为一个强大的工具可以帮助我们更好地理解和监控系统的网络活动。
参考资料
Python psutil documentationPython for System AdministratorsMonitoring with Python