Obtener IP dinamicamente

David Villa dvilla en gmx.net
Jue Abr 28 15:33:23 CEST 2005


Hola:

El jue, 28-04-2005 a las 09:06 -0300, Batista, Facundo escribió:
> [dvilla en gmx.net]
> 
> #- > >>> import socket
> #- > >>> socket.gethostname()
> #- > 'test-sew5o4'
> #- > >>> socket.gethostbyname(socket.gethostname())
> #- > '10.8.104.93'
> #- 
> #- Pues chico, yo hago eso y me dice '127.0.0.1', porque normalmente el
> #- nombre del host es un alias de localhost (y es lo habitual)
> 
> ¿En qué plataforma estás?

Debian

> ¿Seguro que tu IP (y no localhost) no es 127.0.0.1?

No, esa IP es de la iface loopback, y con esa no iba yo a llegar muy
lejos :-)

Lo habitual en un sistema Unix es que el fichero /etc/hosts tenga una
entrada como esta:

127.0.0.1  localhost localhost.localdomain <tu_hostname>

a menos claro que tengas una IP fija. También depende de lo que tengas
en el fichero /etc/host.conf, pero en mi caso da igual porque mi máquina
no está en ningún DNS. Si pregunto al sistema quién es mi hostname, el
único que lo sabe es /etc/hosts y me suelta la IP del loopback
(lógicamente).

Además, resulta que una máquina multihomed tiene varias IPs, de modo que
lo lógico sería poder preguntar por la IP de una interfaz concreta, en
lugar de "la IP de la máquina".

Como verás la gente hace cosas muy raras para solucionar este
problema ;-P

[1] http://aspn.activestate.com/ASPN/Mail/Message/python-Tutor/634100
[2] http://forums.hostrocket.com/archive/index.php/t-13687.html




Más información sobre la lista de distribución Python-es