pikesaku’s blog

個人的なプログラム勉強メモです。記載内容について一切の責任は持ちません。

Pydnsblを使う

複数のDNSBLに問い合わせしてくれる。
 

ソース

from pydnsbl import DNSBLChecker

chk = DNSBLChecker()
res = chk.check_ip('1.1.1.1')

print("Result")
print(res.blacklisted)
print("")
print("Providers")
print(res.detected_by)

結果

Result
True

Providers
{'dyna.spamrats.com': ['unknown']}

 
タイムアウトDNSBLが多く遅い。解消は以下

ソース

from pydnsbl import DNSBLChecker, providers

BASE_PROVIDERS = [
    'b.barracudacentral.org',
    'zen.spamhaus.org',
]
BASE_PROVIDERS = [providers.Provider(host) for host in BASE_PROVIDERS]
print(BASE_PROVIDERS)

chk = DNSBLChecker(providers = BASE_PROVIDERS)
res = chk.check_ip('8.8.8.8')

print("Result")
print(res.blacklisted)
print("")
print("Providers")
print(res.detected_by)

結果

[<Provider: b.barracudacentral.org>, <Provider: zen.spamhaus.org>]
Result
False

Providers
{}