以下是使用 Golang 编写的探测 IP 地址是否存活的函数:
package main
import (
"fmt"
"net"
"time"
)
func IsIPAlive(ip string) bool {
conn, err := net.DialTimeout("ip4:icmp", ip, time.Second*2)
if err != nil {
fmt.Println(err)
return false
}
defer conn.Close()
return true
}
func main() {
ipAddr := "8.8.8.8" // 例子 IP 地址
alive := IsIPAlive(ipAddr)
fmt.Println(alive) // 如果 IP 存活则返回 true,否则返回 false
}
这个函数使用 net.DialTimeout 函数连接到指定的 IP 地址,并设置超时时间为 2 秒。如果连接成功,则说明该 IP 存活;否则,说明该 IP 不可达或不在线。
请注意,某些网络设备(如防火墙)可能会屏蔽 ICMP 流量,因此有些情况下这种方法可能不适用。




