Python é uma linguagem de programação versátil que você pode usar para escrever diferentes tipos de aplicativos baseados em GUI e CLI. Se você é novo no Python, não há melhor maneira de reforçar seu aprendizado do que trabalhando em miniprojetos.
Um ótimo exemplo de projeto Python para escrever é um ping sweeper, um pequeno utilitário que inspeciona hosts de rede. Este script cobrirá conceitos fundamentais de programação, incluindo instruções de impressão, loops e funções.
O que é um varredor de ping?
Um varredor de ping é um programa que aceita um endereço de rede como entrada, pinga os hosts na rede e gera a lista de hosts vivos e mortos. É uma maneira fácil de estimar o número de hosts online em sua rede e descobrir seus endereços IPv4.
Como iniciante, criar um varredor de ping é uma ótima maneira de aprimorar seus conceitos básicos de Python. Este mini-projeto prático também atualizará sua compreensão sobre fundamentos de rede.
Pré-requisitos para o seu Ping Sweeper
Antes de iniciar o processo de desenvolvimento, certifique-se de ter a versão mais recente do Python em seu sistema.
Verifique se você pode executar o Python digitando este comando no prompt de comando (para usuários do Windows) ou no terminal (para sistemas UNIX/Linux) e pressionando Digitar:
python --versão
Em alguns sistemas, pode ser necessário executar:
python3 --versão
Este comando deve retornar a versão do Python instalada em seu sistema. Se ele retornar um erro semelhante a "python not found", você deve instale o Python3 e, em seguida, prossiga com as etapas a seguir.
Codificando o Ping Sweeper
Existem várias abordagens para construir este script. Alguns exigiriam que você instalasse e importasse vários módulos. Aqui, você adotará uma abordagem minimalista que não possui dependências externas além da crucial módulo OS.
Antes de começar a codificar, divida os requisitos para entender melhor qual funcionalidade você precisará implementar. Existem três partes neste script:
- Aceite o endereço IP de entrada.
- Extraia o ID de rede do endereço IP.
- Itere sobre todos os hosts na rede e imprima se um host está morto ou vivo.
Agora que você tem uma visão clara do fluxo de trabalho, vamos começar a programar.
Aceitando e Processando a Entrada
A primeira parte do script lida com a aceitação de entrada do usuário e a redução desse endereço IPv4 aos três primeiros octetos. Isso nos dá o ID da rede:
importar SO
IP = input("[+] Digite o endereço IP do host:\t")
print("[+] Iniciando Ping Sweeper em " + IP)
ponto = IP.rfind(".")
IP = IP[0:ponto + 1]
o entrada() função aceita entrada do usuário. Você pode usar uma string rfind() método para extrair o índice da última ocorrência do ponto decimal e armazená-lo no ponto variável. Continue retendo tudo, desde a entrada até a ocorrência mais à direita de um ponto decimal.
Digitalizando os Hosts e Imprimindo o Status do Host
Você derivou o endereço de rede do IP de entrada. Agora você pode percorrer todos os valores possíveis para o octeto IPv4 final: 1–254. Dentro do loop for, armazene o novo IP no hospedeiro variável. Este IP é o IP base seguido pelo valor da variável do iterador. Em seguida, utilize o os.system() método para executar o ping comando contra o hospedeiro variável.
por eu dentro variar(1, 255):
host = IP + str (i)
resposta = os.system("ping -c 1 -W 1 " + host + " >/dev/null")
E se resposta == 0:
imprimir (host + " é acima")
senão:
imprimir (host + " é baixa")
Teste o resposta valor contra 0 para determinar o status do host e decidir se está online ou offline. Se o ping encontrar um host que não responde, ele retornará um valor diferente de zero. Caso contrário, ele retorna zero para indicar um host que ele pode alcançar.
Você pode adicionar o c bandeira e W sinalizador, com valores de 1, para o comando ping original. Isso faz com que ele envie apenas um pacote e espere um segundo para receber uma resposta. Sua versão do ping pode ou não suportar essas opções; consulte a página de manual do ping para verificar.
Você também deve redirecionar a saída para /dev/null para ocultar os detalhes da saída do ping. Observe que a sintaxe ping e /dev/null é compatível apenas com sistemas Unix ou Linux. Você pode executar este script no Windows substituindo o c bandeira com n e >/dev/null com >nulo.
Executando o script Ping Sweeper
Você pode executar este script no terminal ou por meio de um prompt de comando. Abra um terminal, vá para o local do script e execute-o com python3:
cd /directory/sweeper/
python3 sweeper.py
Insira um endereço IPv4 ou uma sub-rede no terminal e o varredor de ping deve funcionar e retornar a saída esperada.
Ideias interessantes de projetos para Python
O aprendizado prático é sem dúvida a melhor e mais rápida maneira de aprender uma linguagem de programação. Quanto mais projetos você trabalhar, mais você entenderá conceitos, desenvolverá habilidades essenciais e entenderá como resolver problemas.
Se você tiver poucas ideias de projetos para trabalhar, confira esta lista com curadoria das melhores ideias de projetos para Python.