No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Escaneador de puertos sin concurrencia

14/19
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Una recomendación para la vida real, no utilicéis como nombre de variable “i” cuando se hace referencia a puerto, mejor utilizar el nombre “port”. Cuanto más explícito sea el código, más fácil será de leer y entender para el resto del mundo 😃

package main

import (
	"fmt"
	"net"
)

func main() {
	// Escanear cada puerto y hacer una conexión
	for i := 0; i < 100; i++ {
		conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", "scanme.nmap.org", i))
		if err != nil {
			continue
		}
		conn.Close()
		fmt.Println("Port", i, "is open")
	}
}

Por alguna razón cuando intento conectarme al puerto 0 queda cargando, sin tirarme ningún timeout. Para omitir este puerto sin cambiar mucho el código, simplemente arranqué el bucle for desde el indice 1.