您可以使用 icmp 定位特定端口吗?
Can you target a specific port using 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
}
没有。 ICMP 中没有端口。
如果您想知道某个特定的 TCP 服务器是否是 运行,请尝试连接到它。
我相信这个标题很容易理解,但为了以防万一,我会进一步解释。
我正在用 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
}
没有。 ICMP 中没有端口。
如果您想知道某个特定的 TCP 服务器是否是 运行,请尝试连接到它。