Turns out that a bug in netifaces <= 10.5 has been fixed in 10.6 This generated an incorrect netmask on Windows and consequently an incorrect broadcast address This in turn prevented Windows from actually broadcasting (except on the global 255.255.255.255 address which is even more likely to have been blocked by network gear).
Turns out that a bug in netifaces <= 10.5 has been fixed in 10.6
This generated an incorrect netmask on Windows and consequently an incorrect broadcast address
This in turn prevented Windows from actually broadcasting (except on the global 255.255.255.255 address which is even more likely to have been blocked by network gear).

The effect was that Windows could see other machines' broadcast adverts, but they couldn't see those broadcast by Windows. Tests were passing on a single machine because the calculated "broadcast" address was identical to the network address (eg 192.168.0.101) so packets were getting through.

tjguk/networkzero,tjguk/networkzero,tjguk/networkzero