If you have a linksys router, do this:
1. Go to START >> RUN and enter in cmd.exe, this will open the command prompt.
2. In the command prompt type IPCONFIG and copy down the number that starts with 192.168.1.###
3. Now, go online and enter 192.168.1.100, and prompt should appear asking for name and password. Type "(blank)" for the name, and "admin" for the password.
4. Go to the "advanced" tab.
5. Go to port forwarding tab.
6. Select the first port that can be forwarded, and check/enable everything, when it asks which port to be opened, enter the port you are currenlty using on wc3 (if your using 6112, tell it to forward from 6112-6112). When it asks which port, go find the number you copied down previously in step #2. Type into the box at the end (it should say 192.168.1. (blank)) the last three numbers of the number you copied down. They will most likely be 100, or 101. Check enable and you're done.
7. Apply the settings, hit "proceed" and then exit the linksys window. Restart your computer (for safety). Run warcraft III and go online. Try to host a map and see if people join. If nobody joins, while the computer is still ona nd wc3 is running, disable the port you forwarded.
8. Check the settings are like I said above. Make any necessary changes.
9. Restart your computer, re-enable it with the new settings.
10. Restart again, now it should work. If not you made a mistake.