diff --git a/main.go b/main.go index 91cf590..ed82763 100644 --- a/main.go +++ b/main.go @@ -88,14 +88,26 @@ func doPing(host string, count int, interval time.Duration) (*ping.Statistics, e if err != nil { return nil, err } - addr, err := nif.Addrs() + addrs, err := nif.Addrs() if err != nil { return nil, err } - if len(addr) == 0 { + if len(addrs) == 0 { return nil, fmt.Errorf("interface %s has no addressed assigned", conf.UploadInterface) } - pinger.Source = addr[0].(*net.IPNet).IP.String() + + for _, addr := range addrs { + if addr.(*net.IPNet).IP.To4() == nil { + continue + } else { + pinger.Source = addr.(*net.IPNet).IP.String() + break + } + } + + if pinger.Source == "" { + return nil, fmt.Errorf("interface %s has no suitable addressed assigned", conf.UploadInterface) + } err = pinger.Run() if err != nil {