Best way to get ip address

Darren Kirby bulliver at badcomputer.no-ip.com
Thu Sep 9 15:07:42 EDT 2004


Hello list:

I am writing a small app in python which tracks the kernel banner at 
kernel.org and downloads newer kernel version(s) (if there are any).

I am using GeoIP to set the download to a local mirror if there is one. This 
is what I use to get the local IP address:

ip = socket.gethostbyaddr(socket.gethostname())
# returns:  ('hostname.domain', ['hostname'], ['192.168.0.2'])
ip = str(ip[2])
# returns:  "['192.168.0.2']"
ip = ip[2:-2]
# returns:  '192.168.0.2'

This works fine, but seems a little crufty and convoluted, and usually when 
things get crufty it means there is a better way to do it...so is there a 
preferred way of obtaining a local IP address?

Another issue is that if the user is behind a NAT firewall or somesuch and 
uses a private network address then the whole GeoIP code is moot. I was 
thinking that if this is the case then the app could check for the default 
gateway of the machine and use that IP instead, but of course the gateway may 
just be another private network IP address. Does anyone have some ideas on 
how I could make this code useful with a private IP address?

Thanks for your time. 
-- 
Part of the problem since 1976
http://badcomputer.no-ip.com
Get my public key from 
http://keyserver.linux.it/pks/lookup?op=index&search=bulliver
"...the number of UNIX installations has grown to 10, with more expected..."
- Dennis Ritchie and Ken Thompson, June 1972 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20040909/1ff86ebe/attachment.sig>


More information about the Python-list mailing list