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