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