我有一个Rails Web应用程序。我想创建一个使用电子邮件地址的类,例如“ matt@trucksandstuff.com”,解析该域,然后检查是否在Spamhaus DBL中找到了该域。我对他们网站上描述的dig或host命令不满意,并且Charon gem似乎也不适合其示例URL。有什么想法吗?
编辑:这是网站上的内容:
响应“如何测试DBL?”他们说:
首先,DBL遵循RFC5782来确定URI区域是否可用于TEST条目。其次,DBL具有用于测试DBL应用程序的特定域:dbltest.com。要测试DBL的功能,请使用host或dig命令进行手动查询。 (如果您需要通过Web在DBL中查找域,请使用“阻止列表删除中心”中的域查找表单。请勿使用自动化工具查询我们的网站。)
我尝试使用Charon gem,我认为它应该和运行一样简单
Charon.query('dbltest.com')
带有删除括号,添加空格等的变体。
也尝试过
resolver = Resolv::DNS.new
name = 'dbltest.com'
resolver.getresources("#{name}.zen.spamhaus.org", Resolv::DNS::Resource::IN::A)
在Rails控制台中。
答案 0 :(得分:1)
Zen数据库仅用于IP地址。 DBL列表用于主机名。因此,Charon(Zen查询)仅适用于IP地址。要测试主机名,请使用Resolv
和dbl.spamhouse.org
查询主机名:
def is_spammer?(host)
!Resolv::DNS.new.getresources("#{host}.dbl.spamhaus.org",
Resolv::DNS::Resource::IN::A).empty?
end
is_spammer?('dbltest.com')
=> true
is_spammer?('google.com')
=> false