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