{"id":18770041,"url":"https://github.com/yaroslaff/async-dnsbl-client","last_synced_at":"2025-10-17T17:53:18.600Z","repository":{"id":57412087,"uuid":"456196378","full_name":"yaroslaff/async-dnsbl-client","owner":"yaroslaff","description":"Asynchronous dnsbl client","archived":false,"fork":false,"pushed_at":"2022-02-10T14:06:21.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-29T12:47:55.669Z","etag":null,"topics":["antispam","async","asyncio","dns","dnsbl","dnsbl-checker","python","python3","spam","spam-filtering"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yaroslaff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-06T15:52:55.000Z","updated_at":"2022-02-09T22:17:15.000Z","dependencies_parsed_at":"2022-09-09T17:11:20.358Z","dependency_job_id":null,"html_url":"https://github.com/yaroslaff/async-dnsbl-client","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/yaroslaff%2Fasync-dnsbl-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaroslaff%2Fasync-dnsbl-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaroslaff%2Fasync-dnsbl-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaroslaff%2Fasync-dnsbl-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaroslaff","download_url":"https://codeload.github.com/yaroslaff/async-dnsbl-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239671421,"owners_count":19677875,"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":["antispam","async","asyncio","dns","dnsbl","dnsbl-checker","python","python3","spam","spam-filtering"],"created_at":"2024-11-07T19:17:53.670Z","updated_at":"2025-10-17T17:53:13.545Z","avatar_url":"https://github.com/yaroslaff.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# async-dnsbl-client\nAsynchronous dnsbl client\n\n## Install\n~~~\npip3 install async-dnsbl-client\n~~~\nor\n~~~\npip3 install git+https://github.com/yaroslaff/async-dnsbl-client\n~~~\n\n## CLI usage:\n~~~\n$ adnsbl.py 117.207.230.178 \ndnsbl.sorbs.net\ndul.dnsbl.sorbs.net\nspam.dnsbl.sorbs.net\nzen.spamhaus.org\nnoptr.spamrats.com\nb.barracudacentral.org\nweb.dnsbl.sorbs.net\npbl.spamhaus.org\n\n# or with hostname\n$ bin/adnsbl.py gmail-smtp-in.l.google.com\n~~~\n\nyou may remove some DNSBL from checklist with `-r`/`--remove`: `-r dnsbl.sorbs.net dul.dnsbl.sorbs.net`, or add new\nDNSBL zones same way with `-a`/`--append`.\n\n`adnsbl.py` exit code is 0 if host isn't blacklisted anywhere, and 1 otherwise.\n\n## Usage in your python code\nSee adnsbl.py sources, it's simple.\n~~~python\nimport asyncio\nimport async_dnsbl_client\n\nresult = asyncio.run(async_dnsbl_client.dnsbl('gmail-smtp-in.l.google.com'))\n\n~~~\n\n## Why not adns?\nThere is already python3 adns support in [python3-adns](https://github.com/trolldbois/python3-adns) package. But it crashes on ARM machines (such as Raspberri Pi (arch: armv7l) and Oracle Ampere A1 (arch: aarch64)). (maybe you know why?)\n\n~~~python3\n\u003e\u003e\u003e import adns\n\u003e\u003e\u003e adns.init()\nSegmentation fault (core dumped)\n~~~\n\non 'normal' amd64 it works fine, \n\nasync-dnsbl-client works fine on ARM machines (), checking host in 53 blacklists in 0.127s (fastest).\n\n## See also\n\nThis project uses [aiodns package](https://github.com/saghul/aiodns) \n\n[pydnsbl](https://github.com/dmippolitov/pydnsbl) - more mature package, looks more powerful, same fast. (But I need my project because sometimes simpler is better)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaroslaff%2Fasync-dnsbl-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaroslaff%2Fasync-dnsbl-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaroslaff%2Fasync-dnsbl-client/lists"}