[pyar] Pythonizando más un script :P

Mauro Lizaur listas en cacavoladora.org
Mie Jun 16 04:10:10 ART 2010



2010-06-16, "José C. Massón":

> Hola a tod en s,
>
> Hace unos días que en los ratos libres vengo escribiendo un  
> scriptcito[1] para hacer backup de mi home en diferentes lugares vía 
> rsync.
>
> Ya lo tengo andando y funca sin dramas, pero me gustaría hacerlo más  
> "pythonico" y dejar de usar, dentro de lo posible, subprocess para  
> ejecutar algunos comandos de bash que, espero poder reemplazar.
>
> En particualar, en el método "obtener_ip", hago uso de:
>
> --
> sentencia = "ip a | grep inet | grep eth0 | tr \"/\" \" \" | awk '{print  
> $2}'"
>
> a = subprocess.Popen(sentencia, shell=True, stdout=subprocess.PIPE,  
> stderr=subprocess.PIPE )
> --
>
> la verdad es que estuve buscando, y no encontré la manera de hacer esto  
> mismo, pero más pythonicamente ... alguna idea?
>

Hola Jose,
Podes probar con "getaddrinfo" [0] que vale tanto para ipv4 como para ipv6,
aca hay un ejemplo de como seria la cosa con "getaddrinfo":
  http://utcc.utoronto.ca/~cks/space/blog/python/GetaddrinfoForIps
Usando ese codigo despues obtenes los datos con "gethostips(«hostname»')" y
listo.

[0] http://docs.python.org/library/socket.html#socket.getaddrinfo

<semi-ot-yendome-por-las-ramas>
Te /recomiendo/ getaddrinfo y no gethostbyname (que solo devuelve en formato
ipv4) basicamente por esta razon:
  http://www.enc.com.au/sees-blog/2010/06/does-your-program-use-gethostbyname.html
</semi-ot-yendome-por-las-ramas>

Saludos,
Mauro

--
JID: lavaramano en nube.usla.org.ar | http://lizaur.github.com/
2B82 A38D 1BA5 847A A74D 6C34 6AB7 9ED6 C8FD F9C1



More information about the pyar mailing list