源码

import (
	"fmt"
	"os/exec"
	"runtime"
)

// 小写函数名称只能在当前文件调用
func pingcmd(host string) bool {
	// 实例化一个执行任务
	cmds := exec.Command("ping", host)
	// 开始执行
	err := cmds.Run()
	// 判断执行状态(只获取成功或者失败)
	if err != nil {
		fmt.Println("Connection failed: ", host)
		return false
	}else {
		fmt.Println("Connection successful:  ", host)
		return true
	}
}
// 大写开头的函数可被外部调用
func PingStatus(host string) bool {
	// 检测ping是否连接成功
	fmt.Println("Pinging ", host)
	// 获取当前系统类型
	sysType := runtime.GOOS
	// 打印当前系统类型
	fmt.Println("Current system type: ", sysType)
	// 根据系统类型设置对应的参数
	if sysType == "windows" {
		// Windows 系统下直接使用ping ip
		status := pingcmd(host)
		return status
	}else{
		// 非windows下需要使用-c 指定数据包数量
		host := host + " -c 5"
		status := pingcmd(host)
		return status
	}
	return false
}
func main() {
	d := PingStatus("baidu.com")
	if d {
		fmt.Println("ok")
	}else {
		fmt.Println("Errors")
	}
}

执行结果

Pinging  baidu.com
Current system type:  windows
Connection successful:   baidu.com
ok