= strings.Join([]string{ipAddr.IP.String(), strconv.Itoa(port)}, ":")
conn, err := net.DialTimeout("tcp", fullAddr, time.Second) ?
Типа если ошибки не возникло, то порт открыт
Если Dial прошёл, то порт открыт Но обратное неверно
Помимо tcp есть udp, да и делать честный трёхсторонний хендшейк дорого для такой задачи
Изучи, как nmap это делает. Там все известные способы проверки открытости и есть. https://nmap.org/book/man-port-scanning-techniques.html
Обсуждают сегодня