Metadata-Version: 2.2
Name: pydnsbl
Version: 0.6.3
Summary: Async dnsbl lists checker based on asyncio/aiodns.
Home-page: https://github.com/dmippolitov/pydnsbl/
Author: Dmitry ippolitov
Author-email: ippolitov87@gmail.com
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Utilities
Requires-Dist: aiodns>=1.1.1
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: license
Dynamic: requires-dist
Dynamic: summary

Pydnsbl
===============
Async `dnsbl <https://en.wikipedia.org/wiki/DNSBL>`_ lists checker based on asyncio/aiodns. Checks if ip is listed in anti-spam dns blacklists. Multiple dns blacklists supported. Use aiodns for async dns requests. Usually ip check run for 60+ lists takes less than one second.

Installation
----------------
pip intall pydnsbl

Requirements
----------------
python >= 3.5, aiodns

Usage
------------------
>>> from pydnsbl import DNSBLChecker
>>> checker = DNSBLChecker()
>>> result = checker.check_ip('8.8.8.8')
>>> result
<DNSBLResult: 8.8.8.8  (0/62)> # google is clean
>>> result = checker.check_ip('68.128.212.240') 
>>> result
<DNSBLResult: 68.128.212.240 [BLACKLISTED] (12/62)>  # this is just for example
>>> result.blacklisted
True
# detected_by dnsbl providers and their category tag for this ip
>>> result.detected_by 
{'web.dnsbl.sorbs.net': ['unknown'], ...
'zen.spamhaus.org': ['spam', 'exploits']}


Extending/overriding providers
-------------------------------
Basic 
^^^^^^^^^^^^^^^^^^^^^
>>> from pydnsbl import DNSBLChecker, providers
>>> providers = BASE_PROVIDERS + [providers.Provider('yourprovider1.com'), ...]
>>> checker = DNSBLChecker(providers=providers)
# in providers parameter you can pass providers dnsbl host or Provider class object (see Advanced topic below)

Advanced
^^^^^^^^^^^^^^^^^^^^^
Take a look into providers.py file.

* Use **Provider** class to create your custom providers. 
* Override **process_response** method of **Provider** class to map providers response codes (127.0.0.x) to DNSBLChecker categories. 

Contact
------------------
Feel free to contact me:  ippolitov87 at gmail.com
