Construindo um Scanner de Rede em Python

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como construir um scanner de rede usando Python. O scanner de rede utilizará a ferramenta de linha de comando nmap para escanear um endereço IP especificado e exibir os resultados em uma interface gráfica do usuário (GUI) usando a biblioteca Tkinter.

Exemplo da GUI do scanner de rede

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como configurar o projeto e instalar as bibliotecas necessárias
  • Como importar as bibliotecas necessárias para a GUI e executar a ferramenta de linha de comando nmap
  • Como definir uma função de escaneamento para recuperar o endereço IP inserido pelo usuário e escanear a rede
  • Como criar a janela principal da GUI
  • Como adicionar um campo de entrada para o endereço IP e um botão "Scan Network" (Escanear Rede)
  • Como criar uma área de texto para exibir os resultados do escaneamento
  • Como executar o projeto e realizar o escaneamento da rede

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Configurar um projeto Python e instalar bibliotecas
  • Importar bibliotecas e usá-las em um script Python
  • Criar uma GUI usando Tkinter
  • Lidar com a entrada do usuário e acionar funções
  • Usar a ferramenta de linha de comando nmap para escaneamento de rede
Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível intermediário com uma taxa de conclusão de 73%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Configurar o projeto

Crie um novo arquivo Python e nomeie-o network_scanner.py. Abra o arquivo em um editor de código de sua preferência.

cd ~/project
touch network_scanner.py

Em seguida, instale a ferramenta de linha de comando nmap, tkinter e python-nmap usando o seguinte comando:

sudo apt update
sudo apt-get install nmap -y
sudo apt-get install python3-tk -y
sudo pip install python-nmap
✨ Verificar Solução e Praticar

Importar as bibliotecas necessárias

No início do arquivo, importe as bibliotecas necessárias: tkinter para a GUI e subprocess para executar a ferramenta de linha de comando nmap.

import tkinter as tk
import subprocess
✨ Verificar Solução e Praticar

Definir a função de varredura

Defina uma função chamada scan_network que será acionada quando o botão "Scan Network" for clicado. Esta função irá recuperar o endereço IP inserido pelo usuário, limpar a área de texto de resultados e executar o comando nmap para varrer a rede.

def scan_network():
    ip_address = entry_ip.get()
    result_text.delete(1.0, tk.END)
    result_text.insert(tk.END, f"Scanning network: {ip_address}\n\n")

    try:
        output = subprocess.check_output(["nmap", "-F", ip_address])
        result_text.insert(tk.END, output.decode("utf-8"))
    except subprocess.CalledProcessError:
        result_text.insert(tk.END, "Ocorreu um erro ao varrer a rede.")
✨ Verificar Solução e Praticar

Criar a janela principal

Crie a janela principal da GUI usando a classe Tk() do Tkinter.

window = tk.Tk()
window.title("Network Scanner")
✨ Verificar Solução e Praticar

Adicionar campo de entrada e botão de digitalização

Crie um rótulo (label) e um campo de entrada para o usuário inserir o endereço IP. Em seguida, crie um botão "Scan Network" que chamará a função scan_network quando clicado.

label_ip = tk.Label(window, text="Enter IP Address:")
label_ip.pack()
entry_ip = tk.Entry(window)
entry_ip.pack()
scan_button = tk.Button(window, text="Scan Network", command=scan_network)
scan_button.pack()
✨ Verificar Solução e Praticar

Adicionar área de texto para resultados

Crie uma área de texto usando a classe Text() do Tkinter. Esta área de texto exibirá os resultados da varredura (scan).

result_text = tk.Text(window)
result_text.pack()
✨ Verificar Solução e Praticar

Iniciar o loop principal

Adicione a seguinte linha no final do arquivo para iniciar o loop principal da GUI:

window.mainloop()
✨ Verificar Solução e Praticar

Executar o projeto

Salve o arquivo e execute-o usando um interpretador Python. A janela da GUI aparecerá.

cd ~/project
python network_scanner.py

Insira o endereço IP que você deseja escanear no campo de entrada e clique no botão "Scan Network". A varredura da rede (network scan) será realizada usando nmap, e os resultados serão exibidos na área de texto.

Network scanner GUI window
✨ Verificar Solução e Praticar

Resumo

Neste projeto, você aprendeu como construir um scanner de rede (network scanner) em Python usando a biblioteca Tkinter. O scanner de rede utiliza a ferramenta de linha de comando nmap para escanear um endereço IP especificado. Os resultados são exibidos em uma interface gráfica do usuário (graphical user interface), permitindo que os usuários realizem facilmente varreduras de rede e visualizem a saída. Você pode aprimorar ainda mais o scanner de rede adicionando mais recursos e melhorando a interface do usuário de acordo com suas necessidades.