Skip to content

Instantly share code, notes, and snippets.

@42wim
Last active August 1, 2022 06:48
Show Gist options
  • Select an option

  • Save 42wim/e5ccde700f316c082f4e to your computer and use it in GitHub Desktop.

Select an option

Save 42wim/e5ccde700f316c082f4e to your computer and use it in GitHub Desktop.
pingtester
mkdir /home/user/go
cd /home/user/go
export GOPATH=/home/user/go
go get
go build
sudo ./pingtest 8.8.8.8 8.8.4.4 192.168.1.1 100.64.0.1 31.13.90.2
1 | 2 | 3 | 4 | 5 |
: | : | : | | : |
: | : | : | | : |
: | : | : | | : |
: | : | : | | : |
: | : | : | | : |
: | : | : | | : |
: | : | : | | : |
package main
import (
"fmt"
"github.com/tatsushid/go-fastping"
"net"
"os"
"time"
)
var result map[string]string
func main() {
var mylist []string
result = make(map[string]string)
p := fastping.NewPinger()
for _, host := range os.Args[1:] {
ra, _ := net.ResolveIPAddr("ip4:icmp", host)
p.AddIPAddr(ra)
mylist = append(mylist, host)
}
p.OnRecv = func(addr *net.IPAddr, rtt time.Duration) {
result[addr.String()] = rtt.String()
}
p.OnIdle = func() {
for _, value := range mylist {
if result[value] != "" {
fmt.Print(" : |")
} else {
fmt.Print(" |")
}
}
fmt.Println()
result = nil
result = make(map[string]string)
for _, host := range os.Args[1:] {
result[host] = ""
}
}
fmt.Printf(" ")
for index, _ := range os.Args[1:] {
fmt.Print(index + 1)
fmt.Printf(" | ")
}
fmt.Println()
for {
err := p.Run()
if err != nil {
fmt.Println(err)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment