Two ethernet cards/networks (still)

Steve Holden steve at
Mon Sep 11 04:17:22 CEST 2006

Bob Greschke wrote:
> "Steve Holden" <steve at> wrote in message 
> news:mailman.140.1157668455.5279.python-list at
>>Bob Greschke wrote:
>>The reason that "binding to a specific address is almost never used for a 
>>client" is because it's the server destination address that the network 
>>layer will use to determine which interface is used to communicate with a 
>>specific server host.
>>Suppose your network setup looks like this:
>>+-------------------+------------------------+ Network A
>>                    |
>>                    |
>>                    |
>>                    |
>>                    |
>>           +--------+--------+
>>           |                 |
>>           |                 |
>>           |     YOUR HOST   |
>>           |                 |
>>           |                 |
>>           +--------+--------+
>>                    |
>>                    |
>>                    |
>>                    |
>>                    |
>>+-------------------+----------+-------------+ Network B
>>                               |
>>                               +
>>                      +--------+--------+
>>                      |      router     |
>>                      |   to internet   |
>>                      +-----------------+
>>If your client program tries to communicate with, say, then 
>>by the IP network layer will automatically select network A as the medium, 
>>since the destination is local to that network. If you then want to 
>>communicate the results to then network B will be used, 
>>again because the destination is local to that network (its first 24 bits 
>>are the same as the first 24 bits of the destination).
>>In this case the router on network B will almost certainly be the default 
>>route for the host, as it's the way to everywhere else.
>>This isn't really Python-related, so I hope it answers your question!
>> Steve
>>Steve Holden       +44 150 684 7255  +1 800 494 3119
>>Holden Web LLC/Ltd
>>Skype: holdenweb
>>Recent Ramblings
> Nice explanation!  Thanks!  You mean I don't have to do anything special?? 
> That sounds suspiciously easy. :)
> To muddy the water a little the equipment I want to get info from (some 
> seismic digitizing/recording equipment) comes back to us from the field with 
> the IP addresses set to whatever that last user needed.  What we do now is 
> put the unit(s) on the bench, connect them to the private network and use a 
> broadcast address (like and a specific port number to query 
> and see who is connected.  Then we (a program) can get in (login, basically) 
> and reset the all of the IPs to the same subnet to proceed with checkout, 
> calibration, etc.  We have to disconnect from (or disable the card for) the 
> outside network when we do this discovery or else the program discovers all 
> of these instruments that we have running in the building (monitoring a 
> seismic pier, in people's offices, etc.).  I'm guessing here we will still 
> need to do this?  It's not a biggie, but finding a way to not have to do 
> this was what started this whole thing.  Once the program knows which 
> instruments it found on the private network it doesn't matter.  It will only 
> work on those ones.

Ah, so you want to do a limited broadcast over a single interface (the 
one for the private network) to avoid having to disable the other 
interface? That's a different kettle of fish.

I suspect you could do it by binding the local socket to a single 
address, but I'd need to play around to get it right. Maybe someone else 
has already done this?

Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd
Skype: holdenweb
Recent Ramblings

More information about the Python-list mailing list