dechamps / WinIPBroadcast

Automagically sends IP broadcast packets to all interfaces on Windows
GNU General Public License v3.0
244 stars 21 forks source link

Does not work zerotier #3

Open imtrobin opened 7 years ago

imtrobin commented 7 years ago

Hi, I'm trying WinIPBroadcast with zerotier (www.zerotier.com), and using Unreal/Unity games to test the LAN broadcast to find the games. It doesn't get to relayBroadcast, all filter out before hand.

I supposed they are using the same port to broadcast/receive, I see in the notes, that it wouldn't work in such case, but doesn't majority of LAN broadcast (for games) use the same port?

dechamps commented 7 years ago

You can use Wireshark to figure out where your packets are going and which ports they use. This might help shed some light on your issue.

imtrobin commented 7 years ago

Hi Etinenne, I have some time to test more. It does work when the ports are different. I use a seperate program to test. Wireshark shows the packet being relayed, good work!

Unfortunately, the games I'm trying is using the same ports. Can I ask where in the code this is being checked? I like to try disable it. Why would it not work for the when ports are the same?

dechamps commented 7 years ago

It is not checked anywhere in WinIPBroadcast, nor should it. Windows simply doesn't deliver such packets to the raw socket listening on the loopback interface, so WinIPBroadcast doesn't get to see them. I have no idea why - it's probably a quirk of the Windows network stack. Keep in mind this whole thing is a giant hack in the first place and relies on a weird undocumented behavior of raw sockets on Windows, so one can't really expect it to work reliably and consistently. Believe me, if I knew how to fix it, I would :)

Feel free to experiment and see if you can find a workaround. If you do, I would be happy to hear about it. You might also want to try one of the "alternatives" that are listed in the README.

imtrobin commented 7 years ago

I see. that's why I couldn't find it in the code! Thanks for the explanation.

ThymoNL commented 4 years ago

For TCP I was able to find this: https://superuser.com/questions/1088309/windows-10-nat-port-forwarding-ip-masquerade

Most games however use UDP to find servers and above doesn't (yet) work with UDP. I haven't found anything that can solve that.