Best way to get ip address

John Lenton john at
Fri Sep 10 01:19:16 CEST 2004

On Thu, Sep 09, 2004 at 12:07:42PM -0700, Darren Kirby wrote:
> Hello list:
> I am writing a small app in python which tracks the kernel banner at 
> 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'], [''])
> ip = str(ip[2])
> # returns:  "['']"
> ip = ip[2:-2]
> # returns:  ''
> 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 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?

this is more convoluted, and depends on a third party, but I find it's
the most reliable way to find out what you seem to be wanting:


there are several apps out there that depend on,
and it's a published service, so it shouldn't be changing too often.


John Lenton (john at -- Random fortune:
You love your home and want it to be beautiful.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: Digital signature
URL: <>

More information about the Python-list mailing list