Best way to get ip address
john at grulic.org.ar
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
> 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?
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 checkip.dyndns.org,
and it's a published service, so it shouldn't be changing too often.
John Lenton (john at grulic.org.ar) -- Random fortune:
You love your home and want it to be beautiful.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 196 bytes
Desc: Digital signature
More information about the Python-list