Best way to get ip address
bulliver at badcomputer.no-ip.com
Thu Sep 9 21:07:42 CEST 2004
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)
# 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
Get my public key from
"...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
Size: 196 bytes
Desc: not available
More information about the Python-list