36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
|
|
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}")
|