I have a windows Vista machine upon which VirtualBox is running ubuntu.
In ubuntu I am running a webserver at the address http://127.0.0.1:3000/
How do I access this address from my host machine (the windows box)?
Depends how you setup networking on the Ubuntu guest OS. If you set it up to use NAT and you have a DHCP server running on your network, then just run this:
on the Ubuntu box -- you'll see the IP address assigned to the Ubuntu guest.
Then just hit up http://10.0.0.2:3000
Your Windows box and the Ubuntu box (whether they are physical or virtual doesn't really matter in this instance) both need to have an IP address on the same subnet so they can talk to one another via TCP/IP. You can assign an additional address to each OS using one of the private IP subnets (see RFC 1918). Once they both have an address on the same subnet, configure the web server to listen on the one you gave Ubuntu, and then use that IP in the browser within Windows to load it up.
The IP you have configured now, 127.0.0.1, is the loopback address for the local network interface. You would never use that address to access something on a different system, only to refer back to the same system you're on. When using a virtual system, treat it just like you would a separate computer from a networking standpoint.
You can change your guest networking mode from NAT to Bridged. Just close your Ubuntu guest, go to the Settings page in VirtualBox, select the Network category and change the Attached to listbox from NAT to Bridged Mode.
After following the above steps restart Ubuntu and the allocated IP will show on the welcome screen after load. i.e. In the welcome message it should say something like:
Use this address in the browser bar of the host machine followed by the port your using. If its anything other than port 80. i.e. if you set it up to use port 666 then the address would be 192.168.1.3:666
Another way to find the IP is to connect to the HTTP server built into your router and look in LAN settings. Every machine on the network should be listed by host name and IP. On my router most others I've had, you can do this by typing 192.168.1.1 in the address bar. if that fails try same address at port 81. If that fails READ THE MANUAL.
To solve your problem i sugest that you add a new network adapter and configure it as Host-only adapter.
Now you run the virtual box instance and then what fsckin sugested to see what is the ip of the new network.
This way you have a subnet with your computer and your virtual machine.