-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmonitor_rede.py
More file actions
37 lines (29 loc) · 1.54 KB
/
monitor_rede.py
File metadata and controls
37 lines (29 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# -*- coding: utf-8 -*-
import psutil
from datetime import datetime
def monitor_connections():
"""Lista as conexões de rede ativas e seus processos."""
print("--- Monitor de Conexões de Rede Ativas ---")
print(f"Snapshot tirado em: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
# Cabeçalho da tabela
print(f"{'PID':<8} {'Processo':<25} {'Status':<15} {'Endereço Remoto'}")
print("-" * 70)
try:
# psutil.net_connections() retorna uma lista de todas as conexões
for conn in psutil.net_connections(kind='inet'):
# Vamos focar em conexões estabelecidas com um endereço remoto
if conn.status == 'ESTABLISHED' and conn.raddr:
pid = conn.pid
proc_name = "N/A"
try:
# Tenta obter o nome do processo associado ao PID
proc_name = psutil.Process(pid).name()
except (psutil.NoSuchProcess, psutil.AccessDenied):
# O processo pode ter terminado ou não temos permissão para acessá-lo
proc_name = "Acesso Negado ou Encerrado"
remote_addr = f"{conn.raddr.ip}:{conn.raddr.port}"
print(f"{pid:<8} {proc_name:<25} {conn.status:<15} {remote_addr}")
except psutil.AccessDenied:
print("\n[ERRO] Acesso negado. Execute este script como administrador (ou com sudo no Linux/macOS) para ver todos os processos.")
if __name__ == "__main__":
monitor_connections()