2013-01-02 15:49:27 +01:00
|
|
|
module ProjectHoneypot
|
2010-10-20 13:00:50 -06:00
|
|
|
class Base
|
|
|
|
def initialize(api_key)
|
|
|
|
@api_key = api_key
|
|
|
|
end
|
|
|
|
|
2010-10-20 23:07:24 -06:00
|
|
|
def lookup(ip_address)
|
|
|
|
ip_address = url_to_ip(ip_address)
|
|
|
|
reversed_ip = ip_address.split(".").reverse.join(".")
|
|
|
|
honeypot_score = extract_ip_address(Net::DNS::Resolver.start("#{@api_key}.#{reversed_ip}.dnsbl.httpbl.org"))
|
|
|
|
Url.new(ip_address, honeypot_score)
|
|
|
|
end
|
|
|
|
|
2013-01-02 15:49:27 +01:00
|
|
|
private
|
2010-10-20 13:00:50 -06:00
|
|
|
|
2010-10-20 23:07:24 -06:00
|
|
|
def url_to_ip(url)
|
|
|
|
return url if url.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)
|
|
|
|
extract_ip_address(Net::DNS::Resolver.start(url))
|
2010-10-20 13:00:50 -06:00
|
|
|
end
|
|
|
|
|
2010-10-20 23:07:24 -06:00
|
|
|
def extract_ip_address(dns_response)
|
|
|
|
dns_response.answer.first.to_s.split.last
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|