{"id":19873257,"url":"https://github.com/navytitanium/dns-online-filter","last_synced_at":"2025-05-02T09:31:40.767Z","repository":{"id":107768834,"uuid":"116440124","full_name":"NavyTitanium/Dns-online-filter","owner":"NavyTitanium","description":"Decides if provided domains are safe based on DNS threat blocking providers intelligence. Does not required to have any blocklist.","archived":false,"fork":false,"pushed_at":"2018-01-10T00:18:16.000Z","size":3600,"stargazers_count":15,"open_issues_count":1,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T00:51:12.990Z","etag":null,"topics":["dns-based-filter","dns-filter","dns-firewall","dns-resolver","domain-filter"],"latest_commit_sha":null,"homepage":"https://navytitanium.github.io/DNSMasterChef/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NavyTitanium.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-06T00:22:11.000Z","updated_at":"2023-08-13T09:25:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"2dd89549-fae3-4ba7-b695-3d761efad549","html_url":"https://github.com/NavyTitanium/Dns-online-filter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FDns-online-filter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FDns-online-filter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FDns-online-filter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FDns-online-filter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NavyTitanium","download_url":"https://codeload.github.com/NavyTitanium/Dns-online-filter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252015852,"owners_count":21680837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dns-based-filter","dns-filter","dns-firewall","dns-resolver","domain-filter"],"created_at":"2024-11-12T16:18:04.818Z","updated_at":"2025-05-02T09:31:40.762Z","avatar_url":"https://github.com/NavyTitanium.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DNS Online Filter\nDecides if provided domains are safe based on DNS threat blocking providers intelligence.\n\nBlocklists are not required. Instead, it makes use of the following public DNS resolvers: \n* Quad9 (9.9.9.9, 149.112.112.112)\n* Strongarm (54.174.40.213, 52.3.100.184)\n* SafeDNS (195.46.39.39, 195.46.39.40)\n* ComodoSecure (8.26.56.26, 8.20.247.20)\n* NortonConnectSafe (199.85.126.30, 199.85.127.30)\n\nin parallel to verify if the domain is safe.\n\nIf a provider returns either **NXDOMAIN**, **NODATA** or a sinkholed IP address for a specified domain, it will end other queries and return False (domain unsafe).\n\nIf all providers correctly resolve the domain, it will be considered safe.\n\nYou can add as many threat blocking DNS providers as you want to the script. The 5 providers were chosen to demonstrate the proof of concept.\n\n## Setup\nRequires Python 3.6.\n### Python packages\n* [dnspython](https://pypi.python.org/pypi/dnspython)\n* [asyncio](https://docs.python.org/3/library/asyncio.html)\n* [pyasn](https://github.com/hadiasghari/pyasn)\n\n## IP to ASN database\nYou also need to provide an IP to ASN database for pyasn. \n\nI strongly suggest that you update the database with [the following scripts](https://github.com/hadiasghari/pyasn/tree/master/pyasn-utils)\n\n## Usage\n```\nasync-filter.py domains.txt\n```\n## Output\n```\n[root@localhost]# python3.6 async-filter.py domains.txt \ngoogle.com --\u003e safe\ncnn.com --\u003e safe\nstat-dns.com --\u003e unsafe, filtered by NortonConnectSafe\nwww.zonemach.com --\u003e unsafe, filtered by Strongarm\nwww.yasli-sad.ru --\u003e unsafe, filtered by Strongarm\nwww.vinhosportimao.com --\u003e unsafe, filtered by Strongarm\nwww.unblocking-acccount.000webhostapp.com --\u003e unsafe, filtered by Strongarm\nwww.thephonecompany.com --\u003e unsafe, filtered by Quad9\nwww.softica.fr --\u003e unsafe, filtered by Quad9\nwww.siginlocalecountry.com --\u003e unsafe, filtered by Strongarm\nwww.shoko-bussan.sakura.ne.jp --\u003e unsafe, filtered by Quad9\nwww.secure17.000webhostapp.com --\u003e unsafe, filtered by Strongarm\nwww.rixrax.com --\u003e unsafe, filtered by Strongarm\nwww.residentstudents.org --\u003e unsafe, filtered by Strongarm\nwww.registery-fanpages45.gq --\u003e unsafe, filtered by Quad9\nwww.regiojardines.com --\u003e unsafe, filtered by Strongarm\nwww.psicl.000webhostapp.com --\u003e unsafe, filtered by Strongarm\nwww.prorammexico.com --\u003e unsafe, filtered by Strongarm\n-------------RESULT-------------\n2/18 Safe\n16/18 Blocked\nTotal time: 9.669567823410034\n```\n### domains.txt\n\nThe list of domains to lookup. Must be one per line.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavytitanium%2Fdns-online-filter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnavytitanium%2Fdns-online-filter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavytitanium%2Fdns-online-filter/lists"}