Make sure the following ports are forwarded on your router:
TCP 47624
TCP and UDP 2300-2400
UDP 6073
This is from the official Microsoft website for DirectX. I forwarded both TCP and UDP, just in case.
For instructions on how to port forward your router, go to
http://portforward.com/english/routers/port_forwarding/. When clicking on your router brand, be sure to click on close in the upper right hand corner. You DO NOT have to buy their software to use their port forwarding guides.
If you're still unable to host after port forwarding, you can try the following:
1) Enable UPnP on your router. Now try to host via DirectIP, if it still doesn't work, go to step 2.
2) Add a firewall exception to Windows Firewall for Rebexe.exe, EVEN if you don't use Windows Firewall and even if it's disabled.
3) Add a firewall exceptiion for Rebexe.exe to any other firewalls you may have running, whether it's Norton, McAfee, whatever.
4) Repeat steps 2 and 3 with the DirectPlay Helper, typically found at C:\Windows\System32\dpnsvr.exe.
I recommend that both the host and the client do these steps in order to make it work. I can assure you 100% that if you do this correctly, it will work. I've been playing for a long time now, and doing these steps on my Windows 10 system seems to have done the trick. Good luck!