From 366857d58aaf3463b08c4680286f195d149938fd Mon Sep 17 00:00:00 2001 From: bel Date: Mon, 8 Jun 2026 13:35:31 -0600 Subject: [PATCH] google.com sudo run --- go.mod | 12 ++++++++++++ go.sum | 14 ++++++++++++++ main.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..8e85dac --- /dev/null +++ b/go.mod @@ -0,0 +1,12 @@ +module gitea/pingd + +go 1.22.2 + +require github.com/go-ping/ping v1.2.0 + +require ( + github.com/google/uuid v1.2.0 // indirect + golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e3c6e62 --- /dev/null +++ b/go.sum @@ -0,0 +1,14 @@ +github.com/go-ping/ping v1.2.0 h1:vsJ8slZBZAXNCK4dPcI2PEE9eM9n9RbXbGouVQ/Y4yQ= +github.com/go-ping/ping v1.2.0/go.mod h1:xIFjORFzTxqIV/tDVGO4eDy/bLuSyawEeojSm3GfRGk= +github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 h1:b0LrWgu8+q7z4J+0Y3Umo5q1dL7NXBkKBWkaVkAq17E= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005 h1:pDMpM2zh2MT0kHy037cKlSby2nEhD50SYqwQk76Nm40= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/main.go b/main.go new file mode 100644 index 0000000..1d5606d --- /dev/null +++ b/main.go @@ -0,0 +1,51 @@ +package main + +import ( + "flag" + "fmt" + "os" + "time" + + "github.com/go-ping/ping" +) + +func main() { + if err := run(); err != nil { + panic(err) + } +} + +func run() error { + fs := flag.NewFlagSet(os.Args[0], flag.ContinueOnError) + domain := fs.String("d", "www.google.com", "address to ping") + c := fs.Int("c", 0, "limit pings") + if err := fs.Parse(os.Args[1:]); err != nil { + return err + } + + pinger, err := ping.NewPinger(*domain) + if err != nil { + return err + } + pinger.Count = *c + pinger.SetPrivileged(true) + + fmt.Printf("ts,n,ok_pct,max,avg,stddev\n") + pinger.OnRecv = func(*ping.Packet) { + stat := pinger.Statistics() + fmt.Printf("%s,%d,%.0f%%,%dms,%dms,%dms\n", + time.Now().UTC().Format("2006-01-02T15:04:05Z"), + stat.PacketsRecv, + 100.0*(1.0-stat.PacketLoss), + stat.MaxRtt.Milliseconds(), + stat.AvgRtt.Milliseconds(), + stat.StdDevRtt.Milliseconds(), + ) + } + + if err := pinger.Run(); err != nil { + return err + } + + return nil +}