Best way to get ip address
Cameron Laird
claird at lairds.us
Thu Sep 9 18:08:04 EDT 2004
In article <mailman.3117.1094756871.5135.python-list at python.org>,
Darren Kirby <bulliver at badcomputer.no-ip.com> wrote:
>-=-=-=-=-=-
>
>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?
.
.
.
Your instincts are healthy; this *is* convoluted. As it
turns out, though, there's no clearly better answer.
For various reasons--I find it convenient today to blame "sec-
urity"--there is not and will not be a satisfying answer to
this question. You might like to read through, for example, <URL:
http://groups.google.com/groups?frame=left&th=7026ecbc602559e6 >.
More information about the Python-list
mailing list