Two ethernet cards/networks (still)
steve at holdenweb.com
Mon Sep 11 04:17:22 CEST 2006
Bob Greschke wrote:
> "Steve Holden" <steve at holdenweb.com> wrote in message
> news:mailman.140.1157668455.5279.python-list at python.org...
>>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
>> | 192.168.12.34/24
>> | |
>> | |
>> | YOUR HOST |
>> | |
>> | |
>> | 188.8.131.52/24
>>+-------------------+----------+-------------+ Network B
>> | router |
>> | to internet |
>>If your client program tries to communicate with, say, 192.168.12.18 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 184.108.40.206 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 Holden +44 150 684 7255 +1 800 494 3119
>>Holden Web LLC/Ltd http://www.holdenweb.com
>>Skype: holdenweb http://holdenweb.blogspot.com
>>Recent Ramblings http://del.icio.us/steve.holden
> 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 255.255.255.255) 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 http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden
More information about the Python-list