fabriziosalmi / blacklists

Hourly updated domains blacklist 🚫
https://github.com/fabriziosalmi/blacklists/releases/download/latest/blacklist.txt
GNU General Public License v3.0
117 stars 5 forks source link

check dns records against dns filtering services #42

Closed fabriziosalmi closed 12 months ago

fabriziosalmi commented 1 year ago
import dns.resolver

def check_domain(domain):
    dns_servers = {
        'Google': '8.8.8.8',
        'Cloudflare': '1.1.1.3',
        'Quad9': '9.9.9.9',
        'CleanBrowsing': '185.228.168.9',
        'AdGuard DNS': '176.103.130.130',
        'Yandex.DNS': '77.88.8.8',
    }

    # Example blacklisted IPs for A records
    blacklist_ips = {
        'Google': '0.0.0.0',
        'Cloudflare': '0.0.0.0',
        'Quad9': '0.0.0.0',
        'CleanBrowsing': '185.228.168.10',
        'AdGuard DNS': '176.103.130.131',
        'Yandex.DNS': '77.88.8.1',
    }

    for provider, server in dns_servers.items():
        resolver = dns.resolver.Resolver()
        resolver.nameservers = [server]

        try:
            answers = resolver.resolve(domain, 'A')
            result_ip = answers[0].address

            if result_ip == blacklist_ips[provider]:
                return 1  # Blacklisted by at least one server
        except Exception as e:
            pass

    return 0  # Not blacklisted by any server

if __name__ == "__main__":
    domain_to_check = input("Enter domain to check: ").strip()
    result = check_domain(domain_to_check)
    print(result)
fabriziosalmi commented 12 months ago

https://github.com/fabriziosalmi/blacklists/actions/workflows/check-whitelisted.yml