On Mar 10, 9:40 am, Marc Christiansen <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: > > I have a linux box with multiple ip addresses. I want to make my > > python client connect from one of the ip addresses. Here is my code, > > no matter what valid information I put in the bind it always comes > > from the default ip address on the server. Am I doing something wrong? > > > ------------- > > #!/usr/bin/python > > > import socket > > > host = "server" > > port = 1190 > > > sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > > > sock.bind(("<ipalias>",0)) > > sock.connect((host, port)) > > ------------- > > Looks good to me. Just to verify it, I added 127.1.2.3 as an address to > lo (ip addr add 127.1.2.3/8 dev lo broadcast 127.255.255.255), and... > > >>> import socket > >>> sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > >>> sock.bind(("127.1.2.3",0)) > >>> sock.connect(("127.0.0.1",80)) > > In another shell: > tolot:~> lsof -c python -a -i -nP > COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME > [...] > python 1287 tolot 3u IPv4 3553610 TCP > 127.1.2.3:38329->127.0.0.1:80 (ESTABLISHED)
help string: Bind the socket to a local address. For IP sockets, the address is a pair (host, port); the host must refer to the local host. docs: Bind the socket to address. Wikipedia: Before a socket may accept incoming connections, it must be bound. PHP.net: Binds the name given in address to the socket described by socket . This has to be done before a connection is be established using socket_connect() or socket_listen(). This function must be used on the socket before socket_connect(). -- http://mail.python.org/mailman/listinfo/python-list