The Answer
There can only be 2 problems as listed above firewall or routor, maybe more I dunno if so dont know hw to fix those.
Firewall: you disable when you want to host, some firewalls allow you to put in a port forward in that
Routor: You can disable this too or you can find your IP adress for routor (call comany listed on the routor to find IP adress for it, usualy is on there) then type it in internet explorer where you usualy put a website.
Port Forwarding number:Warcraft III:
Allow port 6112 TCP out and allow established sessions in
Allow port 6112 TCP in (hosting custom games)
Allow port 6113-6119 TCP out and in (hosting custom games if you've changed the default port in the Options/Gameplay screen)
My routor may not be same as yours but heres how my routor sets it up.
Type this:
Battle.net 6113 6119 6113 6119