Getting local IP address...
David Bolen
db3l at fitlinxx.com
Mon Jul 17 21:34:20 EDT 2000
More information about the Python-list mailing list
Mon Jul 17 21:34:20 EDT 2000
- Previous message (by thread): Matlab vs Python (was RE: Discussion: Introducing new operators f
- Next message (by thread): Getting local IP address...
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Mike Fletcher <mfletch at tpresence.com> writes: > import socket > def getLocalHostIP( remote = ("www.python.org", 80)): > '''Get the "public" address of the local machine, i.e. > that address which is connected to the general internet. > Code by Donn Cave, posted to comp.lang.python''' > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > s.connect( remote ) > ip, localport = s.getsockname() > s.close() > return ip > > That is actually from a Deja posting, seems to be fairly portable, doesn't > rely on parsing obscure Unix command responses, is readable, and is > generally quite reliable. But has a pretty large (IMHO) negative that you are making a wasted network connection to an external server that has to spend time setting up and tearing down TCP with you for no reason. That seems a pretty high overhead to pay just to determine what is essentially a locally configured piece of information. If you are in charge of your own server that you are using I suppose that's one thing, but it seems a big waste if you're connecting to someone else's. Unfortunately, really determining a local configured address just isn't that portable a thing from my experience. Probably the closest would be the SIOCGIFCONF IOCtl (for Unix systems) as previously posted. There is an Windows socket IOCtl that is similar (SIO_ADDRESS_LIST_QUERY), but I'm not sure how best to get to it from Python, aside from something like a CallDLL approach. While without an alternative that is portable as the above example makes it hard to come out too strong against it, I did want to point out that while it may be portable and readable, it has negatives on the network side in terms of wasted connections. I built backbones in a prior life, and I sort of cringe to think of tons of user code suddenly starting to do stuff like the above :-) -- -- David -- /-----------------------------------------------------------------------\ \ David Bolen \ E-mail: db3l at fitlinxx.com / | FitLinxx, Inc. \ Phone: (203) 708-5192 | / 860 Canal Street, Stamford, CT 06902 \ Fax: (203) 316-5150 \ \-----------------------------------------------------------------------/
- Previous message (by thread): Matlab vs Python (was RE: Discussion: Introducing new operators f
- Next message (by thread): Getting local IP address...
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list