37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
import dns.resolver
|
||
|
||
class DnsPlugin:
|
||
"""Plugin para consultar registros DNS de un dominio."""
|
||
|
||
def run(self, sender, *args):
|
||
"""Consulta registros DNS de un dominio."""
|
||
if not args:
|
||
return " Uso: `.dns <dominio>` - Consulta registros DNS A, AAAA, MX, CNAME y TXT."
|
||
|
||
domain = args[0]
|
||
records = ["A", "AAAA", "MX", "CNAME", "TXT"]
|
||
response = [f"** Registros DNS de {domain}**"]
|
||
|
||
try:
|
||
for record in records:
|
||
try:
|
||
answers = dns.resolver.resolve(domain, record)
|
||
registros = ", ".join([r.to_text() for r in answers])
|
||
response.append(f"️ **{record}:** {registros}")
|
||
except dns.resolver.NoAnswer:
|
||
continue # Si no hay respuesta, omitimos el registro
|
||
except dns.resolver.NXDOMAIN:
|
||
return f"️ El dominio `{domain}` no existe."
|
||
except dns.resolver.Timeout:
|
||
return f"⏳ Tiempo de espera agotado consultando `{domain}`."
|
||
|
||
return "\n".join(response) if len(response) > 1 else f"️ No se encontraron registros para `{domain}`."
|
||
|
||
except Exception as e:
|
||
return f" Error en consulta DNS: {str(e)}"
|
||
|
||
def help(self):
|
||
"""Muestra la ayuda para el comando .dns"""
|
||
return " Uso: `.dns <dominio>` - Muestra los registros DNS A, AAAA, MX, CNAME y TXT de un dominio."
|
||
|