[Python-es] Como averiguo si un nombre de dominio esta disponible usando python

lasizoillo lasizoillo en gmail.com
Lun Jul 22 19:17:28 CEST 2013


El 22 de julio de 2013 15:53, Andrey Antukh <niwi en niwi.be> escribió:

> Segunda respuesta de Javier Camuñas: señala un paquete que ya esta hecho,
> obviamente es una solución hecha, no responde a la pregunta. (Ya que
> obviamente la pregunta es cual es la mejor aproximacion para hacer X cosa
> en vez de cual es el mejor paquete para hacer X)
>

Enlazando a una librería de código fuente se puede ver cuál es la
aproximación empleada:
http://code.google.com/p/python-whois/source/browse/whois/__init__.py

- Consulta los datos
- Parsea con expresiones regulares
- Normaliza a un objeto los datos de las expresiones regulares

El cómo hace la consulta
http://code.google.com/p/python-whois/source/browse/whois/_1_query.py

- Se puede ver una llamada a subprocess para llamar al comando whois del
sistema operativo.
- Se puede ver también un intento (fallido)* de comunicación por sockets a
través del puerto 43 (servicio de whois).

* Explicar el fallo entraría en el off-topic. El que quiera puede ver la
implementación del comando whois de su distro favorita para entender el
pastel.

Si un TLD falla, se puede ver claramente como solventarlo aquí:
- http://code.google.com/p/python-whois/source/browse/whois/tld_regexpr.py

Siempre que no sean tan cachondos como en españa. Que hace falta consultar
una web con un captcha. No veas la puta gracía para automatizar eso (aquí
entraríamos en requests y en reconocimiento de imágenes). Pero bueno, los
.es no se consultan mediante whois (puerto 43).

Así que no veo mal el aporte de una librería. Si se quiere la solución se
tiene y si se quiere entender la solución le lleva a uno un rato más.

Un saludo,

Javi
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130722/5c6df300/attachment.html>


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