How to have multiple (wireless) network profiles? is the following scenario possible in Mac OSX?

I want to assign specific TCP/IP configurations for different wireless networks that I connect to, and I want the system to remember the settings.

For example:

When I'm at work, I have two networks that I frequently connect to and switch between. The first one is the internet-enabled network, the TCP/IP settings in this network is configured automatically using DHCP. The second one is the internal testing network, this network is not connected to the internet and the TCP/IP settings must be configured manually.

Every time I switch between them, I set the TCP/IP settings manually from Networks preference pane. Since I do this quite frequently, it gets quite annoying. Moreover, I can't use cables because I need to be mobile when I use the internal network. I want the configuration to be automatically configured for every known wireless network.

Is there a way to do this, or are there any third-party tools for this?
You can set up 'Locations' using System Preferences-> Network, which should do what you need.

In the Network System Preferences panel, you'll see (at the top) a pop-up menu labeled Location. It will be set to Automatic. Click that menu and choose Edit Locations...

Click the [+] button in the panel that appears. Name your new Location. Click Done.

Make sure the new Location is selected under the Location: menu, and set it up.

Then, when you need to change back to the other setup, change the location back to Automatic (or rename Automatic something more descriptive). When you need to change again, switch back to your new one.