From 4047c11f1dc4be669c1260a961e145661e1ae059 Mon Sep 17 00:00:00 2001 From: nex Date: Tue, 3 Jan 2023 15:12:09 +0000 Subject: [PATCH] Add DNS filtering --- cogs/other.py | 10 ++++++++++ requirements.txt | 1 + 2 files changed, 11 insertions(+) diff --git a/cogs/other.py b/cogs/other.py index 34c0d2b..d6a1fbd 100644 --- a/cogs/other.py +++ b/cogs/other.py @@ -3,6 +3,7 @@ import io import os import random import re +import dns.resolver from time import sleep as time_sleep from typing import Literal from typing import Tuple, Optional, Dict @@ -376,6 +377,15 @@ class OtherCog(commands.Cog): if re.match(line.strip(), url.netloc): return await ctx.edit(content="That domain is blacklisted.") + try: + for response in await asyncio.to_thread(dns.resolver.resolve, url.netloc, "A"): + if response.address == "0.0.0.0": + return await ctx.edit(content="That domain is filtered.") + except dns.resolver.NXDOMAIN: + return await ctx.edit(content="That domain does not exist.") + except dns.resolver.NoAnswer: + return await ctx.edit(content="DNS resolver did not respond.") + try: screenshot = await self.screenshot_website( ctx, diff --git a/requirements.txt b/requirements.txt index 9327da2..8f2324a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,4 @@ nltk==3.7 psutil==5.9.4 selenium==4.7.2 chromedriver==2.24.1 +dnspython==2.2.1