Моей целью было бы решить, будет ли неудачное TCP-соединение, созданное с помощью net.Dial (это не обязательно должен быть net.Dial), из-за проблемы брандмауэра / подключения или просто сбоя в приемнике.
По сути, я хотел бы видеть нечто похожее на то, что я бы сделал с tcptraceroute.
- Тайм-аут (какой был последний ip)
- открытый / закрытый порт на dst
Также было бы неплохо выяснить, какой сетевой интерфейс (локальный адрес) использовался для неудачного соединения
conn, err := net.Dial("tcp", hostName + ":" + portNum)
if err != nil {
// is it possible to have socket values here
// maybe the last succesful hop before the connection failed?
}
// on succesfull conn it is straightforward
conn.LocalAddr()
conn.RemoteAddr()