async-dnsbl-client
Asynchronous dnsbl client
Install
pip3 install async-dnsbl-client
or
pip3 install git+https://github.com/yaroslaff/async-dnsbl-client
CLI usage:
$ adnsbl.py 117.207.230.178
dnsbl.sorbs.net
dul.dnsbl.sorbs.net
spam.dnsbl.sorbs.net
zen.spamhaus.org
noptr.spamrats.com
b.barracudacentral.org
web.dnsbl.sorbs.net
pbl.spamhaus.org
# or with hostname
$ bin/adnsbl.py gmail-smtp-in.l.google.com
you may remove some DNSBL from checklist with -r/--remove: -r dnsbl.sorbs.net dul.dnsbl.sorbs.net, or add new
DNSBL zones same way with -a/--append.
adnsbl.py exit code is 0 if host isn't blacklisted anywhere, and 1 otherwise.
Usage in your python code
See adnsbl.py sources, it's simple.
import asyncio
import async_dnsbl_client
result = asyncio.run(async_dnsbl_client.dnsbl('gmail-smtp-in.l.google.com'))
Why not adns?
There is already python3 adns support in 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?)
>>> import adns
>>> adns.init()
Segmentation fault (core dumped)
on 'normal' amd64 it works fine,
async-dnsbl-client works fine on ARM machines (), checking host in 53 blacklists in 0.127s (fastest).
See also
This project uses aiodns package
pydnsbl - more mature package, looks more powerful, same fast. (But I need my project because sometimes simpler is better)
Metadata
Release files for async-dnsbl-client 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| async_dnsbl_client-0.0.5.tar.gz | 4.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| async_dnsbl_client-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.0 kB
Release files / async_dnsbl_client-0.0.5.tar.gz
| Download URL | async_dnsbl_client-0.0.5.tar.gz |
|---|---|
| Size | 4.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59f8124c31f690f1eb158420e150226271daca1dee0bae77f63294d4d48ad5a2
|
|
BLAKE2b-256 checksum How to use checksums |
ca1532716a4914707929828ccb2db983b140b9bc52c07f6baa4b03d738b6e13a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.28.1
|
Release files / async_dnsbl_client-0.0.5-py3-none-any.whl
| Download URL | async_dnsbl_client-0.0.5-py3-none-any.whl |
|---|---|
| Size | 5.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fdb2f452ee3aafde749b5adeba7e8d776ab65013b77ea2a0879d1ee270936202
|
|
BLAKE2b-256 checksum How to use checksums |
4456be58472921fb1ac9ad30fd613f5bc71e36948df48fcc4dce2756338696d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.28.1
|
Security for async-dnsbl-client 0.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.