Introducción
En este proyecto, aprenderás cómo construir un escáner de red utilizando Python. El escáner de red utilizará la herramienta de línea de comandos nmap para escanear una dirección IP especificada y mostrar los resultados en una interfaz gráfica de usuario (GUI, por sus siglas en inglés) utilizando la biblioteca Tkinter.

🎯 Tareas
En este proyecto, aprenderás:
- Cómo configurar el proyecto e instalar las bibliotecas necesarias
- Cómo importar las bibliotecas necesarias para la GUI y ejecutar la herramienta de línea de comandos
nmap - Cómo definir una función de escaneo para recuperar la dirección IP ingresada por el usuario y escanear la red
- Cómo crear la ventana principal de la GUI
- Cómo agregar un campo de entrada para la dirección IP y un botón "Escanear red"
- Cómo crear un área de texto para mostrar los resultados del escaneo
- Cómo ejecutar el proyecto y realizar un escaneo de red
🏆 Logros
Después de completar este proyecto, podrás:
- Configurar un proyecto de Python e instalar bibliotecas
- Importar bibliotecas y utilizarlas en un script de Python
- Crear una GUI utilizando Tkinter
- Manejar la entrada del usuario y activar funciones
- Utilizar la herramienta de línea de comandos
nmappara escanear redes
Configurar el proyecto
Crea un nuevo archivo de Python y llámalo network_scanner.py. Abre el archivo en un editor de código de tu elección.
cd ~/project
touch network_scanner.py
Luego, instala la herramienta de línea de comandos nmap, tkinter y python-nmap utilizando el siguiente comando:
sudo apt update
sudo apt-get install nmap -y
sudo apt-get install python3-tk -y
sudo pip install python-nmap
Importar las bibliotecas necesarias
Al principio del archivo, importa las bibliotecas necesarias: tkinter para la interfaz gráfica de usuario (GUI) y subprocess para ejecutar la herramienta de línea de comandos nmap.
import tkinter as tk
import subprocess
Definir la función de escaneo
Define una función llamada scan_network que se activará cuando se haga clic en el botón "Escanear red". Esta función recuperará la dirección IP ingresada por el usuario, borrará el área de texto de resultados y ejecutará el comando nmap para escanear la red.
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, "An error occurred while scanning the network.")
Crear la ventana principal
Crea la ventana principal de la interfaz gráfica de usuario (GUI) utilizando la clase Tk() de Tkinter.
window = tk.Tk()
window.title("Network Scanner")
Agregar campo de entrada y botón de escaneo
Crea una etiqueta y un campo de entrada para que el usuario ingrese la dirección IP. Luego, crea un botón "Escanear red" que llamará a la función scan_network cuando se haga clic en él.
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()
Agregar área de texto para los resultados
Crea un área de texto utilizando la clase Text() de Tkinter. Esta área de texto mostrará los resultados del escaneo.
result_text = tk.Text(window)
result_text.pack()
Iniciar el bucle principal
Agrega la siguiente línea al final del archivo para iniciar el bucle principal de la interfaz gráfica de usuario (GUI):
window.mainloop()
Ejecutar el proyecto
Guarda el archivo y ejecútalo utilizando un intérprete de Python. Aparecerá la ventana de la interfaz gráfica de usuario (GUI).
cd ~/project
python network_scanner.py
Ingresa la dirección IP que deseas escanear en el campo de entrada y haz clic en el botón "Escanear red". El escaneo de la red se realizará utilizando nmap, y los resultados se mostrarán en el área de texto.

Resumen
En este proyecto, has aprendido cómo construir un escáner de red en Python utilizando la biblioteca Tkinter. El escáner de red utiliza la herramienta de línea de comandos nmap para escanear una dirección IP especificada. Los resultados se muestran en una interfaz gráfica de usuario (GUI), lo que permite a los usuarios realizar fácilmente escaneos de red y ver la salida. Puedes mejorar aún más el escáner de red agregando más funciones y mejorando la interfaz de usuario según tus requisitos.



