diff --git a/modules/dig.py b/modules/dig.py new file mode 100644 index 0000000..3db5581 --- /dev/null +++ b/modules/dig.py @@ -0,0 +1,36 @@ +"""DNS resolver""" + +# PYTHON STUFFS ####################################################### + +import dns.rdtypes.ANY +import dns.rdtypes.IN +import dns.resolver + +from nemubot.exception import IMException +from nemubot.hooks import hook + +from more import Response + + +# MODULE INTERFACE #################################################### + +@hook.command("dig") +def dig(msg): + ltype = "A" + ldomain = None + for a in msg.args: + if a in dns.rdtypes.IN.__all__ or a in dns.rdtypes.ANY.__all__: + ltype = a + else: + ldomain = a + + if not ldomain: + raise IMException("indicate a domain to resolve") + + answers = dns.resolver.query(ldomain, ltype) + + res = Response(channel=msg.channel, title=ldomain, count=" (%s others records)") + for rdata in answers: + res.append_message(type(rdata).__name__ + " " + rdata.to_text()) + + return res