Most likely your problem is that you need to open a few ports on your router. Here is the way to do it:
Getting your IP - First thing you'll need is your IP Address. To find this, you'll need to start your Command Prompt up (Start -> Programs -> Accessories -> Command Prompt). Simply type in "ipconfig" (without the quotes of course), and it should display a short paragraph. One line blatently says IP Address, then the number. Keep this number in mind, as well as the Default Gateway; you'll need it to get to your router.
Port Foward - For Warcraft III and a plethora of other games and such, this provides the ports that are needed for your router configuration. Warcraft III is Port 6112-6119, and notice that it is TCP, not UDP.
Getting to your Router - Simply type in the Default Gateway you got from the Command Prompt earlier into the Address Bar of your ISP (IE, FireFox, Avant, etc). No www, just the gateway. Easy as Pie.
Navigating though your Router - Each Router's setup is different, so I can't be to clear on this one. What you need to find is the Firewall section of your router, and look for a section called "Virtual Servers". All you'll really need to do is put in the Port (6112-6119 in this case), Your IP, the type (TCP in this case), and a description if its allowed (Warcraft III). Enable it and it should go like Clockwork.
This worked for me so Hopefully it will work for you. If your having problems and you can't host, then try this out and it should work. If not than there is either something wrong with your game or something else is wrong with your computer/internet connection.
And you also need to be sure to open port 6112 on your firewall. If that doesn't work then just open all ports 6112-6119 on your firewall (Be sure to open them on your regular firewall and also on your windows firewall if its on!)
NOTE - This was note made by me just copied! but its the usual stuff you gotta do so why should i write it all down when its just ready for me to copy somewhere? its a story that has been told 100 times.