From 6cdcdc77871f9c08be4f4f50d52cb178c429d203 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 17 Apr 2018 16:21:34 -0400 Subject: add ping --- ping.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 ping.go (limited to 'ping.go') diff --git a/ping.go b/ping.go new file mode 100644 index 0000000..a41b4ab --- /dev/null +++ b/ping.go @@ -0,0 +1,30 @@ +package main + +import ( + "net" + "os/exec" + "strconv" + "strings" +) + +func Ping(ip net.IP) float64 { + cmd := exec.Command("ping", + "-n", // numeric + "-q", // quiet + "-c", "1", + ip.String()) + _output, _ := cmd.CombinedOutput() + output := string(_output) + for _, line := range strings.Split(output, "\n") { + if !strings.HasPrefix(line, "rtt min/avg/max/mdev = ") { + continue + } + values := strings.TrimPrefix(line, "rtt min/avg/max/mdev = ") + value, err := strconv.ParseFloat(strings.Split(values, "/")[0], 64) + if err != nil { + continue + } + return value + } + return -1 +} -- cgit v1.2.3