ProjectKevin/README.md

138 lines
5.3 KiB
Markdown

# 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)