Really set source IP for broadcast discovery packets on Windows/FreeBSD
This whole code was no-op: it enumerates network interfaces, enumerates its IP addresses, but does not change the address of broadcast UDP packet, sending it only via default route/interface.
Bind the socket to IP addresses of the interfaces to fix the issue.