import subprocess import platform import utilidades endereco = input("Digite um endereço IP: ") if not utilidades.validar_ip(endereco): print("O endereço IP é inválido!") else: print(f"\n IP Validado! Testando conectividade para {endereco}...\n") parametro = '-n' if platform.system().lower() == 'windows' else '-c' # MUDANÇA 1: O comando agora é uma lista de strings, não um texto único. comando = ['ping', parametro, '1', endereco] try: # MUDANÇA 2: Usamos subprocess.run() # capture_output=True impede que o texto padrão do ping suje a tela. # text=True garante que o resultado venha em formato de texto. resultado = subprocess.run(comando, capture_output=True, text=True) print("\n" + "-" * 40) # MUDANÇA 3: O Exit Code agora é acessado via resultado.returncode if resultado.returncode == 0: print(f" SUCESSO: O IP '{endereco}' está ONLINE e respondeu.") # Bônus: Podemos acessar o texto real da resposta do terminal! # print(" Detalhes do teste:", resultado.stdout.strip()) else: print(f" FALHA: O IP '{endereco}' está OFFLINE ou não respondeu.") print("-" * 40) except Exception as e: print(f" ERRO NO SISTEMA: Falha ao tentar executar o comando de ping. Detalhes: {e}")