doushenyu2537 2019-03-30 20:25
浏览 121

是否可以获取失败的tcp net.Dial的最后一跳的地址?

My goal would be to decide whether an unsuccessful TCP connection made with net.Dial (it does not have to be net.Dial) failed due to a firewall/connectivity issue or just failure in the listener.

So essentially I would like to see something similar what I would with tcptraceroute.

  1. timeout (what was the last ip)
  2. open/closed port on dst

Also it would be nice to figure out which network interface (local address) was used for an unsuccessful connection

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()

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 公交车和无人机协同运输
    • ¥15 stm32代码移植没反应
    • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
    • ¥100 连续两帧图像高速减法
    • ¥15 组策略中的计算机配置策略无法下发
    • ¥15 如何绘制动力学系统的相图
    • ¥15 对接wps接口实现获取元数据
    • ¥20 给自己本科IT专业毕业的妹m找个实习工作
    • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
    • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)