47 lines
2.5 KiB
Python
47 lines
2.5 KiB
Python
|
|
# Execute um teste de conectividade com um único destino da rede, utilizando o comando ping do sistema operacional.
|
||
|
|
# O aluno deve solicitar ao usuário um IP ou nome de host, montar o comando com os.system() e informar se o destino respondeu ou não.
|
||
|
|
|
||
|
|
import os
|
||
|
|
# O módulo os (Operating System) permite que o Python interaja com o sistema operacional.
|
||
|
|
# Neste script, ele será usado para enviar o comando de "ping" diretamente para o terminal do seu computador.
|
||
|
|
import platform
|
||
|
|
# Este módulo serve para obter informações sobre o hardware e o sistema operacional em que o script está rodando.
|
||
|
|
# Ele será crucial para sabermos se você está usando Windows, Linux ou macOS.
|
||
|
|
import utilidades
|
||
|
|
# Esta não é uma biblioteca padrão do Python.
|
||
|
|
# Trata-se de um módulo personalizado (provavelmente um arquivo chamado utilidades.py criado por quem fez o código original e salvo na mesma pasta).
|
||
|
|
# Ele contém funções criadas pelo usuário.
|
||
|
|
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'
|
||
|
|
|
||
|
|
# A segunda linha é uma jogada muito inteligente e comum em redes.
|
||
|
|
# O comando ping funciona diferente dependendo do sistema:
|
||
|
|
# No Windows, para dar apenas 1 ping, usamos o parâmetro -n 1 (number).
|
||
|
|
# No Linux/macOS, usamos -c 1 (count).
|
||
|
|
# platform.system().lower() == 'windows': Ele pergunta ao seu computador qual é o sistema.
|
||
|
|
# Se a resposta for 'windows', a variável parametro recebe -n. Se não for (seja Linux, macOS, etc.), ela recebe -c.
|
||
|
|
|
||
|
|
comando = f"ping {parametro} 1 {endereco}"
|
||
|
|
|
||
|
|
codigo_retorno = os.system(comando)
|
||
|
|
|
||
|
|
# É aqui que a mágica acontece. O Python pega aquele texto e executa no terminal da sua máquina, como se você mesmo tivesse digitado.
|
||
|
|
# Quando um comando de terminal termina, ele devolve um número para o sistema, chamado de Exit Code (Código de Retorno):
|
||
|
|
# 0 (Zero): Significa "Sucesso". O comando rodou perfeitamente (ou seja, o IP respondeu ao ping).
|
||
|
|
# Qualquer número diferente de 0 (ex: 1 ou 2): Significa que houve um erro (o IP está offline ou inacessível).
|
||
|
|
# Esse número é guardado na variável codigo_retorno.
|
||
|
|
|
||
|
|
print("\n" + "-" * 40)
|
||
|
|
|
||
|
|
if codigo_retorno == 0:
|
||
|
|
print(f" SUCESSO: O IP '{endereco}' está ONLINE e respondeu.")
|
||
|
|
else:
|
||
|
|
print(f" FALHA: O IP '{endereco}' está OFFLINE ou não respondeu.")
|
||
|
|
|
||
|
|
print("-" * 40)
|