Skip to content

Commit 9df9df1

Browse files
authored
Create monitor_rede.py
1 parent 45ad5aa commit 9df9df1

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

monitor_rede.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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()

0 commit comments

Comments
 (0)