python: urllib2 using different network interface
Question: I have the following code:

    
    
    f = urllib2.urlopen(url)
    data = f.read()
    f.close()
    

It's running on a machine with two network interfaces. I'd like to specify
which interface I want the code to use. Specifically, I want it to use the one
other than the one it is using by default... but I can figure out which is
which if I can just pick the interface.

What's the easiest/best/most pythonic way to do this?


Answer: Not yet a complete solution, but if you were using only simple socket objects,
you could do what you need this way :

    
    
    import socket
    s = socket.socket()
    s.bind(("127.0.0.1", 0))    # replace "127.0.0.1" by the local IP of the interface to use
    s.connect(("remote_server.com", 80))
    

Thus, you will force the system to bind the socket to the wanted network
interface.

