如何通过进程号获取进程的网络使用
时间: 2024-04-10 18:35:12 浏览: 27
要通过进程号获取进程的网络使用情况,你可以使用 `psutil` 模块来实现。`psutil` 提供了一个 `Process` 类,可以用于获取进程的各种信息,包括网络信息。
以下是一个示例代码,演示如何通过进程号获取进程的网络使用情况:
```python
import psutil
def get_process_network_usage(pid):
process = psutil.Process(pid)
connections = process.connections()
network_usage = []
for conn in connections:
if conn.status == 'ESTABLISHED':
network_usage.append({
'local_address': conn.laddr.ip,
'local_port': conn.laddr.port,
'remote_address': conn.raddr.ip,
'remote_port': conn.raddr.port
})
return network_usage
if __name__ == '__main__':
pid = 1234 # 替换为你要获取信息的进程号
network_usage = get_process_network_usage(pid)
for usage in network_usage:
print(f"Local: {usage['local_address']}:{usage['local_port']} - "
f"Remote: {usage['remote_address']}:{usage['remote_port']}")
```
在上述代码中,我们定义了一个函数 `get_process_network_usage` 来获取给定进程号的进程的网络使用情况。我们使用 `psutil.Process` 类来创建一个 `Process` 对象,并使用 `connections` 方法来获取进程的网络连接信息。然后,我们筛选出状态为 'ESTABLISHED' 的连接,并将其本地地址、本地端口、远程地址和远程端口存储在 `network_usage` 列表中。
请确保将 `pid` 替换为你要获取信息的实际进程号。最后,我们打印出每个连接的本地地址、本地端口、远程地址和远程端口信息。