improve address finding

This commit is contained in:
2022-07-15 17:43:27 +02:00
parent b431cd6428
commit 3bff8e4e2e

18
main.go
View File

@@ -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 {