From c5ef0b6c8a9cc2c953257db9b84731f0a2c4ab31 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Fri, 11 Aug 2023 17:24:11 +1000 Subject: [PATCH] bot: Add dig command --- bot.py | 32 ++++++++++++++++++++++++++++++++ requirements.txt | 3 ++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/bot.py b/bot.py index 9f00914..97edfbc 100644 --- a/bot.py +++ b/bot.py @@ -3,6 +3,8 @@ from dotenv import load_dotenv import discord from discord import app_commands import requests +import socket +import dns.resolver load_dotenv() @@ -57,6 +59,36 @@ async def botstatus(ctx, message: str, statusmethod: str = None): updateStatus() await ctx.response.send_message("Status updated",ephemeral=True) +@tree.command(name="dig", description="Dig a dns record") +async def dig(ctx, domain: str, record_type: str = "A"): + record_type = record_type.upper() + # Format dig @100.74.29.146 -p 5350 + + resolver = dns.resolver.Resolver() + resolver.nameservers = ["100.74.29.146"] + resolver.port = 5350 + try: + # Query the DNS record + response = resolver.query(domain, record_type) + print(response) + records = "" + for record in response: + print(record) + records = records + "\n" + str(record) + + # Send the result to the Discord channel + await ctx.response.send_message(f"DNS records for {domain} ({record_type}):{records}") + + except dns.resolver.NXDOMAIN: + await ctx.response.send_message(f"Domain {domain} not found.") + except dns.exception.DNSException as e: + await ctx.response.send_message(f"An error occurred: {e}") + + + + + + async def log(message): channel=client.get_channel(logChannel) diff --git a/requirements.txt b/requirements.txt index ce61fe9..60d22f1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ discord.py python-dotenv -requests \ No newline at end of file +requests +dnspython \ No newline at end of file