# Proyecto Kevin MultiHilo Bienvenido al proyecto **Kevin MultiHilo**, donde exploramos y aprendemos sobre el uso de **Threads** en Python a través de diversas funcionalidades ejecutadas en hilos independientes. Este proyecto está diseñado para aquellos interesados en comprender y aprovechar la programación multihilo de manera práctica y eficiente. --- ## 📊 Descripción General El objetivo principal de este proyecto es implementar tareas distribuidas en diferentes hilos, mostrando su potencial para mejorar el rendimiento y la gestión de recursos. Además, se incluyen varias dependencias y herramientas que permiten expandir las capacidades de la aplicación. --- ## 🔧 Dependencias ### Dependencias Externas - [**Nmap**](https://nmap.org/download): Herramienta potente para el escaneo de redes y auditoría de seguridad. ### Dependencias Internas 1. [**Scapy**](https://github.com/secdev/scapy): Permite decodificar paquetes de múltiples protocolos, enviarlos, capturarlos y analizarlos. 2. [**os**](https://docs.python.org/es/3.10/library/os.html): Proporciona acceso a funcionalidades dependientes del sistema operativo. 3. [**tkinter**](https://docs.python.org/es/3/library/tkinter.html): Biblioteca de interfaz gráfica predeterminada de Python. 4. [**threading**](https://docs.python.org/es/3.8/library/threading.html): Ofrece herramientas de alto nivel para la gestión de hilos. 5. [**time**](https://docs.python.org/3/library/time.html): Proporciona funciones relacionadas con el tiempo y la sincronización. 6. [**datetime**](https://docs.python.org/3/library/datetime.html): Manejo avanzado de fechas y horas. 7. [**psutil**](https://pypi.org/project/psutil/): Biblioteca para obtener información del sistema (CPU, memoria, discos, red, etc.). 8. [**requests**](https://pypi.org/project/requests/): Simplifica el envío de solicitudes HTTP de manera eficiente. 9. [**python-nmap**](https://pypi.org/project/python-nmap/): Biblioteca para interactuar con Nmap y manipular sus resultados. 10. [**ipaddress**](https://docs.python.org/3/library/ipaddress.html): Manejo de direcciones y redes IPv4/IPv6. 11. [**socket**](https://docs.python.org/3/library/socket.html): Acceso a la interfaz de sockets BSD para comunicación en red. --- ## 🔍 APIs Utilizadas - [**ipwhois.io**](https://ipwhois.io/): Ofrece integración rápida y sencilla para la geolocalización de direcciones IP, ideal para scripts o sitios web. --- ## 🔒 Uso del Proyecto ### Requisitos Previos 1. Instalar Python 3.10 o superior. 2. Descargar e instalar las dependencias necesarias utilizando **pip**: ```bash pip install -r requirements.txt ``` 3. Instalar Nmap desde su [sitio oficial](https://nmap.org/download). ### Ejecución 1. Clonar este repositorio: ```bash git clone https://github.com/usuario/proyecto-kevin-multihilo.git ``` 2. Navegar al directorio del proyecto: ```bash cd proyecto-kevin-multihilo ``` 3. Ejecutar el archivo principal: ```bash python main.py ``` --- ## 📊 Características 1. **Escaneo de redes:** Utiliza Nmap y python-nmap para descubrir dispositivos conectados. 2. **Análisis de paquetes:** Decodificación y manejo de paquetes con Scapy. 3. **Gestión de hilos:** Implementación eficiente de tareas paralelas con la biblioteca `threading`. 4. **Información del sistema:** Visualización del estado actual del sistema con `psutil`. --- ## 📝 Explicación de las principales funcionalidades ### Solapas (Tabs) 1. **IP Tracker** - Permite rastrear información sobre una dirección IP, como ubicación, tipo, y más, utilizando la API de ipwhois.io. - Los resultados se muestran en un área de texto con scroll. 2. **Escaneo de Red** - Realiza un escaneo de dispositivos conectados a la red local usando la biblioteca `python-nmap`. - Lista dispositivos encontrados con sus respectivas direcciones IP y MAC. 3. **Sniffer** - Captura y analiza paquetes de red en tiempo real utilizando `Scapy`. - Muestra información relevante del paquete, como origen, destino, protocolo y puertos. - Incluye funcionalidad para iniciar y detener el análisis. 4. **Juego de Azar (Ruleta)** - Un mini-juego de ruleta donde el usuario puede apostar seleccionando un número del 1 al 10. - Calcula si el jugador gana o pierde y actualiza el saldo en la interfaz. 5. **Scraper** - Permite explorar una URL inicial y extraer enlaces relacionados usando `BeautifulSoup`. - Los resultados se almacenan en una base de datos MongoDB y se muestran en la interfaz en tiempo real. ### Frame Izquierdo - **Gestión del Scraper:** - Entrada para la URL inicial del scraping. - Botones para iniciar y detener la operación. ### Frame Derecho - **Reproductor de Música:** - Lista canciones disponibles en una carpeta local. - Botones para reproducir, detener y actualizar la lista de canciones. ### Barra Inferior (Estado) - **Indicadores del sistema:** - Uso de CPU y RAM en tiempo real. - Velocidad de subida y descarga de red. - Fecha y hora actualizadas dinámicamente. --- ## 🌍 Contribuciones Si deseas contribuir a este proyecto: 1. Realiza un fork del repositorio. 2. Crea una rama para tus cambios: ```bash git checkout -b feature/nueva-funcionalidad ``` 3. Realiza tus modificaciones y crea un pull request. --- ## 🎮 Autor **Kevin Developer** [GitHub](https://github.com/KevinOlarte1)