Skip to content

Neos-Magic/Port-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

╔════════════════════════════════════════════════════════════════════════════════╗
β•‘                    πŸ” NETWORK PORT SCANNER - GUÍA DE USO                         β•‘
β•‘                         v1.0 - Windows, Linux, macOS                             β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

REQUISITOS
═════════════════════════════════════════════════════════════════════════════════

- Python 3.6 o superior
- MΓ³dulos incluidos en Python (socket, tkinter, threading, json, csv, ipaddress)
- No requiere instalaciones adicionales


ARCHIVOS INCLUIDOS
═════════════════════════════════════════════════════════════════════════════════

1. port_scanner.py    - MΓ³dulo principal con toda la lΓ³gica de escaneo
2. main.py            - Interfaz de lΓ­nea de comandos (CLI)
3. gui.py             - Interfaz grΓ‘fica multiplataforma
4. README.txt         - Este archivo


FORMA 1: INTERFAZ GRÁFICA (RECOMENDADA PARA PRINCIPIANTES)
═════════════════════════════════════════════════════════════════════════════════

La forma mΓ‘s fΓ‘cil de usar la herramienta. Funciona en Windows, Linux y macOS.

INICIAR LA INTERFAZ GRÁFICA:
────────────────────────────────────────────────────────────────────────────────

En Windows:
  1. Abre PowerShell o CMD
  2. Navega a la carpeta: cd C:\Users\[tuusuario]\Desktop
  3. Ejecuta: python gui.py

En Linux o macOS:
  1. Abre Terminal
  2. Navega a la carpeta donde estΓ‘n los archivos
  3. Ejecuta: python3 gui.py

USAR LA INTERFAZ GRÁFICA:
────────────────────────────────────────────────────────────────────────────────

1. SELECCIONAR MODO:
   - "Escanear IP Individual": Para escanear una sola mΓ‘quina
   - "Escanear Red Completa": Para escanear todas las mΓ‘quinas de una red

2. INGRESAR OBJETIVO:
   - IP Individual: 192.168.1.100
   - Red CIDR: 192.168.1.0/24

3. SELECCIONAR PUERTOS:
   - "Comunes": Los 18 puertos mΓ‘s utilizados (FTP, SSH, HTTP, HTTPS, MySQL, etc.)
   - "Personalizado": Especifica tus propios puertos

4. PUERTOS PERSONALIZADOS:
   - Puertos individuales: 22,80,443,3306
   - Rango: 1-1000
   - Combinado: 22,80,443,1-100

5. OPCIONES AVANZADAS:
   - Timeout: Tiempo de espera para cada conexiΓ³n (por defecto: 2 segundos)
   - Threads: NΓΊmero de conexiones paralelas (por defecto: 100)

6. HACER CLIC EN "β–Ά Iniciar Escaneo"

7. VER RESULTADOS:
   - Los puertos abiertos aparecerΓ‘n en el Γ‘rea de resultados
   - Haz clic en "πŸ’Ύ Exportar Resultados" para guardar en JSON

ATAJOS DE BOTONES:
   - ⏹ Detener: Cancela el escaneo en progreso
   - πŸ“‹ Limpiar: Limpia el Γ‘rea de resultados
   - πŸ’Ύ Exportar: Guarda los resultados en un archivo


FORMA 2: LÍNEA DE COMANDOS (CLI)
═════════════════════════════════════════════════════════════════════════════════

Para usuarios avanzados que prefieren usar la terminal.

INICIAR LA CLI:

En Windows:
  python main.py [opciones]

En Linux o macOS:
  python3 main.py [opciones]


SINTAXIS GENERAL:
────────────────────────────────────────────────────────────────────────────────

python main.py [-i IP | -n RED] [-p PUERTOS] [-t TIMEOUT] [--threads N] [-e ARCHIVO]


OPCIONES DISPONIBLES:

  -i, --ip IP              Escanear una IP individual
                           Ejemplo: -i 192.168.1.100

  -n, --network RED        Escanear una red completa (CIDR)
                           Ejemplo: -n 192.168.1.0/24

  -p, --ports PUERTOS      Puertos a escanear (default: common)
                           Opciones:
                           - "common"     : Puertos comunes
                           - "22,80,443"  : Puertos especΓ­ficos
                           - "1-1000"     : Rango de puertos
                           Ejemplo: -p 22,80,443,3306

  -t, --timeout SEGUNDOS   Timeout para conexiones (default: 2.0)
                           Ejemplo: -t 5

  --threads N              NΓΊmero de threads paralelos (default: 100)
                           Ejemplo: --threads 200

  -e, --export ARCHIVO     Exportar resultados a archivo
                           Ejemplo: -e resultados.json

  -f, --format FORMATO     Formato de exportaciΓ³n (json o csv)
                           Ejemplo: -f csv


EJEMPLOS DE USO CLI:
────────────────────────────────────────────────────────────────────────────────

1. ESCANEAR UNA IP CON PUERTOS COMUNES:
   python main.py -i 192.168.1.100

2. ESCANEAR UNA IP CON PUERTOS ESPECÍFICOS:
   python main.py -i 192.168.1.100 -p 22,80,443,3306

3. ESCANEAR UN RANGO DE PUERTOS:
   python main.py -i 192.168.1.100 -p 1-1000

4. ESCANEAR TODA UNA RED:
   python main.py -n 192.168.1.0/24

5. ESCANEAR Y EXPORTAR RESULTADOS (JSON):
   python main.py -i 192.168.1.100 -e resultados.json

6. ESCANEAR Y EXPORTAR RESULTADOS (CSV):
   python main.py -i 192.168.1.100 -e resultados.csv -f csv

7. ESCANEO MÁS RÁPIDO CON MÁS THREADS:
   python main.py -i 192.168.1.100 --threads 200

8. ESCANEO CON TIMEOUT MÁS LARGO:
   python main.py -n 192.168.1.0/24 -t 5 --threads 150


ENTENDER LOS RESULTADOS
═════════════════════════════════════════════════════════════════════════════════

ESTADOS DE PUERTO:

- OPEN (ABIERTO):  El puerto estΓ‘ accesible y hay un servicio escuchando
- CLOSED (CERRADO): El puerto no estΓ‘ escuchando (firewall activo)
- FILTERED (FILTRADO): No hay respuesta (firewall bloqueando)

SERVICIOS COMUNES:

  21   β†’ FTP          (Transferencia de archivos)
  22   β†’ SSH          (Shell seguro / Terminal remota)
  23   β†’ Telnet       (Terminal remota insegura)
  25   β†’ SMTP         (Correo saliente)
  53   β†’ DNS          (ResoluciΓ³n de nombres)
  80   β†’ HTTP         (Web no encriptado)
  110  β†’ POP3         (Correo entrante)
  143  β†’ IMAP         (Correo entrante avanzado)
  443  β†’ HTTPS        (Web encriptado)
  445  β†’ SMB          (Compartir archivos Windows)
  3306 β†’ MySQL        (Base de datos)
  3389 β†’ RDP          (Escritorio remoto Windows)
  5432 β†’ PostgreSQL   (Base de datos)
  8080 β†’ HTTP-ALT     (Web alternativo)
  9200 β†’ Elasticsearch (Motor de bΓΊsqueda)


ARCHIVOS DE EXPORTACIΓ“N
═════════════════════════════════════════════════════════════════════════════════

Cuando exportas resultados, se crean archivos con el siguiente formato:

JSON:
{
  "ip": "192.168.1.100",
  "port": 22,
  "state": "open",
  "service": "SSH",
  "timestamp": "2026-05-15T14:30:45.123456"
}

CSV:
IP,Puerto,Estado,Servicio,Fecha
192.168.1.100,22,open,SSH,2026-05-15T14:30:45.123456


CONFIGURACIΓ“N RECOMENDADA
═════════════════════════════════════════════════════════════════════════════════

ESCANEO RÁPIDO (para redes locales):
  - Timeout: 1-2 segundos
  - Threads: 150-200
  - Puertos: common

ESCANEO COMPLETO (para investigaciΓ³n):
  - Timeout: 3-5 segundos
  - Threads: 100
  - Puertos: 1-65535 (LENTO - puede tomar horas)

ESCANEO DE UNA SOLA IP:
  - Timeout: 2-3 segundos
  - Threads: 100-200
  - Puertos: 1-1000 o personalizado


SOLUCIΓ“N DE PROBLEMAS
═════════════════════════════════════════════════════════════════════════════════

PROBLEMA: "No me muestra todos los puertos abiertos"
SOLUCIΓ“N: Aumenta el timeout con -t 5

PROBLEMA: "El escaneo es muy lento"
SOLUCIΓ“N: Aumenta los threads con --threads 200

PROBLEMA: "Error: Red invΓ‘lida"
SOLUCIΓ“N: Verifica el formato CIDR: 192.168.1.0/24 (correcto)

PROBLEMA: "ModuleNotFoundError: No module named 'tkinter'"
SOLUCIΓ“N: 
  - Windows: Reinstala Python y marca la opciΓ³n "tcl/tk and IDLE"
  - Linux: sudo apt-get install python3-tk
  - macOS: DeberΓ­a estar incluido

PROBLEMA: "Permiso denegado en Linux"
SOLUCIΓ“N: Haz el archivo ejecutable:
  chmod +x gui.py main.py port_scanner.py
  ./gui.py

PROBLEMA: "Puerto 80 o 443 aparece como cerrado pero deberΓ­a estar abierto"
SOLUCIΓ“N: 
  - El firewall puede estar bloqueando
  - El servicio puede no estar escuchando en 127.0.0.1
  - Intenta con permisos de administrador


CONSIDERACIONES DE SEGURIDAD
═════════════════════════════════════════════════════════════════════════════════

AVISO LEGAL:
This tool is for educational and authorized security testing only. Unauthorized 
access to computer networks is illegal. Always obtain permission before scanning 
networks or systems that you do not own.

CONSEJOS DE SEGURIDAD:
- Solo escanea redes que te pertenecen o tienes permiso para escanear
- Los escaneos pueden ser detectados por sistemas de defensa
- Usa con cuidado en redes de producciΓ³n
- Respeta la privacidad y la ley


EJEMPLOS RÁPIDOS
═════════════════════════════════════════════════════════════════════════════════

WINDOWS - GUI:
  cd Desktop
  python gui.py

WINDOWS - CLI (Escanear 192.168.1.100):
  python main.py -i 192.168.1.100

LINUX - GUI:
  python3 gui.py

LINUX - CLI (Escanear red 192.168.1.0/24):
  python3 main.py -n 192.168.1.0/24

EXPORTAR A JSON:
  python main.py -i 192.168.1.100 -e resultados.json

EXPORTAR A CSV:
  python main.py -i 192.168.1.100 -e resultados.csv -f csv


INFORMACIΓ“N ADICIONAL
═════════════════════════════════════════════════════════════════════════════════

PLATAFORMAS SOPORTADAS:
- βœ“ Windows 10, 11
- βœ“ Linux (Ubuntu, Debian, CentOS, Fedora, etc.)
- βœ“ macOS

VERSIΓ“N: 1.0
ÚLTIMA ACTUALIZACIΓ“N: Mayo 2026

CONTACTO:
Para reportar bugs o sugerencias, revisa el cΓ³digo fuente.


Β‘LISTO PARA ESCANEAR!
═════════════════════════════════════════════════════════════════════════════════

RecomendaciΓ³n: Si es tu primera vez, usa la interfaz grΓ‘fica (gui.py).
Es mΓ‘s amigable y intuitiva.

Β‘Disfruta escaneando tu red de forma segura!

═════════════════════════════════════════════════════════════════════════════════

About

# πŸ›‘οΈ Network & Port Scanner GUI : Este proyecto permite identificar dispositivos activos en una red local y escanear puertos TCP abiertos mediante una interfaz grΓ‘fica intuitiva y un motor de alto rendimiento

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors