138 lines
5.3 KiB
Markdown
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)
|