diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2018-04-17 16:21:34 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2018-04-17 16:21:34 -0400 |
commit | 6cdcdc77871f9c08be4f4f50d52cb178c429d203 (patch) | |
tree | ec0a1c15da5b885addb6e114663430ee7f8614da /ping.go | |
parent | d18e052e01ec6fa6df4165a409058fb81adf0555 (diff) |
add ping
Diffstat (limited to 'ping.go')
-rw-r--r-- | ping.go | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -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 +} |