myircbot/plugins/dns.py
2025-05-29 22:58:53 +02:00

37 lines
1.4 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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."