猿问

您可以使用 icmp 定位特定端口吗?

我相信标题是不言自明的,但为了以防万一,我会进一步解释。


我正在用 Go 编写一个函数,它使用 icmp 来检查特定服务是否正在运行。我从 Go 中实现的 ping 中得到了这个想法。当我尝试命令行ping时,它无法解析127.0.0.1:8080,并且功能也随之而来,这是有道理的。但是我可以使用 icmp 来检查地址和端口是否有遗漏吗?或者我应该坚持使用 tcp 之类的东西来定位端口?


现在我有这个简单的功能,我可以只使用 tcp,但我很好奇我是否可以使用像 icmp 这样的东西。


func (c *Controller) Ping() error {

    conn, connErr := net.Dial("ip4:icmp", c.APIServerIP)

    if connErr != nil {

        return connErr

    }

    conn.SetDeadline(time.Now().Add(3 * time.Second))

    defer conn.Close()

    return nil

}


宝慕林4294392
浏览 174回答 1
1回答

犯罪嫌疑人X

否。ICMP 中没有端口。如果您想知道特定的 TCP 服务器是否正在运行,请尝试连接到它。
随时随地看视频慕课网APP

相关分类

Go
我要回答