【发布时间】:2016-12-09 05:43:37
【问题描述】:
我正在使用go ping 一些 Linux 机器。
但这并不准确,因为连接远程mysql总是需要将近10秒的时间。
我使用这个命令:
mysql -u 用户 -p 密码 -h 远程 IP
所以我想知道如何使用linux命令来知道它是否打开。
那我就用 golang 的 exec.Command 来做吧。
这是我的ping 代码:
package main
import (
"errors"
"fmt"
"github.com/tatsushid/go-fastping"
"net"
"net/smtp"
"strings"
"time"
)
func main(){
err := ping("192.168.2.1")
if err != nil{
fmt.Println("WARNING!!!!!!")
}
}
func ping(ip string) error {
p := fastping.NewPinger()
ra, err := net.ResolveIPAddr("ip", ip)
if err != nil {
return err
}
p.AddIPAddr(ra)
found := false
p.OnRecv = func(addr *net.IPAddr, rtt time.Duration) {
found = true
}
err = p.Run()
if err != nil {
return err
}
if !found {
return errors.New("response error")
}
return nil
}
【问题讨论】: