class Legitbot::BotMatch
valid?
, fake?
and detected_as
Represents a bot instance match. Typical methods are
#
def self.fake?(ip, resolver_config = nil)
def self.fake?(ip, resolver_config = nil) self.new(ip, resolver_config).fake? end
def self.valid?(ip, resolver_config = nil)
def self.valid?(ip, resolver_config = nil) self.new(ip, resolver_config).valid? end
def detected_as
def detected_as self.class.name.split('::').last.downcase.to_sym end
def fake?
def fake? !valid? end
def initialize(ip, resolver_config = nil)
def initialize(ip, resolver_config = nil) @dns = Resolv::DNS.new(resolver_config) @ip = ip end
def reverse_domain
Returns a Resolv::DNS::Name instance with
#
def reverse_domain @reverse_domain ||= @dns.getname(@ip) end
def reverse_name
#
def reverse_name reverse_domain.to_s end
def reverse_resolves?
def reverse_resolves? reversed_ip == @ip end
def reversed_ip
#
def reversed_ip @reverse_ip ||= @dns.getaddress(reverse_name) @reverse_ip.to_s end
def subdomain_of?(*domains)
def subdomain_of?(*domains) domains.any? { |d| reverse_domain.subdomain_of? Resolv::DNS::Name.create(d) } end