|
@@ -69,9 +69,25 @@ func NewMDNS(config NetworkHost, MacOverride string) (*MDNSHost, error) {
|
|
|
if strings.EqualFold(thisIfaceMac, strings.TrimSpace(MacOverride)) {
|
|
|
//This is the correct iface to use
|
|
|
overrideIface = &iface
|
|
|
- addr, err := iface.Addrs()
|
|
|
- if err == nil && len(addr) > 0 {
|
|
|
- ifaceIp = addr[0].String()
|
|
|
+ addrs, err := iface.Addrs()
|
|
|
+
|
|
|
+ if err == nil && len(addrs) > 0 {
|
|
|
+ ifaceIp = addrs[0].String()
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, addr := range addrs {
|
|
|
+ var ip net.IP
|
|
|
+ switch v := addr.(type) {
|
|
|
+ case *net.IPNet:
|
|
|
+ ip = v.IP
|
|
|
+ case *net.IPAddr:
|
|
|
+ ip = v.IP
|
|
|
+ }
|
|
|
+
|
|
|
+ if ip.To4() != nil {
|
|
|
+ //This NIC have Ipv4 addr
|
|
|
+ ifaceIp = ip.String()
|
|
|
+ }
|
|
|
}
|
|
|
foundMatching = true
|
|
|
break
|
|
@@ -81,7 +97,7 @@ func NewMDNS(config NetworkHost, MacOverride string) (*MDNSHost, error) {
|
|
|
if !foundMatching {
|
|
|
log.Println("[mDNS] Unable to find the target iface with MAC address: " + MacOverride + ". Resuming with default iface")
|
|
|
} else {
|
|
|
- log.Println("[mDNS] Entering force MAC address mode, listening on: " + MacOverride + "( IP address: " + ifaceIp + ")")
|
|
|
+ log.Println("[mDNS] Entering force MAC address mode, listening on: " + MacOverride + "(IP address: " + ifaceIp + ")")
|
|
|
}
|
|
|
}
|
|
|
|