Antonin, I know what you mean, i said it was sudo code, and bind was the best i could think of to describe what I meant. However your socket on the client side has to bind to an IP, for it to work, if you look at raw sockets, you are able to specify which IP address your connection goes through. John, I'm trying to write a http client to download pages off a server I don't own. The client however can only connect to the server once a seccond if it only uses one IP, however the client is running on a machine that has 4 IP addresses, defined as eth0, eth0:0, eth0:1, eth0:2, I want the client to send the request from a different one of those each time. The example I gave about the server returning the IP address was just an example to show what should be returned. I think the answer is to use wget with the --bind-address option, although I have yet to test this due to debugging other things atm. If that doesn't work then running a proxy that i write in c, that uses raw sockets is the way forward. Thanks for all your help Andy -- Posted via http://www.ruby-forum.com/.