python dns cname dig

Usando el comando dig en python



dns cname (2)

Solo una advertencia, mis habilidades con los pitones son casi inexistentes, pero estoy tratando de aprender sobre la marcha.

Estoy realizando algunos cambios a través de nuestro panel de control de DNS durante el fin de semana a aproximadamente 58 CNAMES (solo cambiando el destino)

¿Y en lugar de comprobar que los cambios se han activado para cada registro individual, me preguntaba si habría una forma de escribir una lista de excavaciones para cada CNAME en python?

El comando de excavación que utilizo sería algo como esto

dig @ns1.netnames.net www.rac.co.uk CNAME

y esperaría ver que se devolviera rac-secure.gslb2.rac.co.uk .

Probé algo como:

import os os.system( ''dig<exampledomain.com>''CNAME )

Pero eso no parece funcionar (como mencioné que faltan mis habilidades de python), ¿estoy en el camino correcto o debo estar usando algo como dnspython? He usado el módulo dnspython antes con (mucha) ayuda de la comunidad de desbordamiento de pila, pero encuentro la documentación realmente confusa.

Cualquier puntero en la dirección correcta sería muy apreciado.

Saludos

Chris


Es bastante posible invocar la excavación desde python, probablemente le ahorraría trabajo si solo utilizara una biblioteca de python. Eche un vistazo a dnspython que probablemente hará todo más fácil, además de que no tiene que analizar el formato de salida.

import socket import dns.resolver # Basic query for rdata in dns.resolver.query(''www.yahoo.com'', ''CNAME'') : print rdata.target # Set the DNS Server resolver = dns.resolver.Resolver() resolver.nameservers=[socket.gethostbyname(''ns1.cisco.com'')] for rdata in resolver.query(''www.yahoo.com'', ''CNAME'') : print rdata.target


os.system está en desuso. Utilizar subprocess.Popen . subprocess.Popen :

import subprocess import shlex cmd=''dig @ns1.netnames.net www.rac.co.uk +short'' # cmd=''dig @ns1.netnames.net www.rac.co.uk CNAME'' proc=subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE) out,err=proc.communicate() print(out) # rac-secure.gslb.norwichunion.com.