class Mihari::WhoisRecord
Public Class Methods
build_by_domain(domain)
click to toggle source
Build whois record
@param [Stinrg] domain
@return [WhoisRecord, nil]
# File lib/mihari/models/whois.rb, line 21 def build_by_domain(domain) domain = PublicSuffix.domain(domain) # check memo if @memo.key?(domain) whois_record = @memo[domain] # return clone of the record return whois_record.dup end record = Whois.whois(domain) parser = record.parser return nil if parser.available? whois_record = new( domain: domain, created_on: get_created_on(parser), updated_on: get_updated_on(parser), expires_on: get_expires_on(parser), registrar: get_registrar(parser), contacts: get_contacts(parser) ) # set memo @memo[domain] = whois_record whois_record rescue Whois::Error, Whois::ParserError, Timeout::Error nil end
Private Class Methods
get_contacts(parser)
click to toggle source
Get contacts
@param [::Whois::Parser:] parser
@return [Array, nil]
# File lib/mihari/models/whois.rb, line 112 def get_contacts(parser) parser.contacts.map(&:to_h) rescue ::Whois::AttributeNotImplemented nil end
get_created_on(parser)
click to toggle source
Get created_on
@param [::Whois::Parser:] parser
@return [Date, nil]
# File lib/mihari/models/whois.rb, line 60 def get_created_on(parser) parser.created_on rescue ::Whois::AttributeNotImplemented nil end
get_expires_on(parser)
click to toggle source
Get expires_on
@param [::Whois::Parser:] parser
@return [Date, nil]
# File lib/mihari/models/whois.rb, line 86 def get_expires_on(parser) parser.expires_on rescue ::Whois::AttributeNotImplemented nil end
get_registrar(parser)
click to toggle source
Get registrar
@param [::Whois::Parser:] parser
@return [Hash, nil]
# File lib/mihari/models/whois.rb, line 99 def get_registrar(parser) parser.registrar&.to_h rescue ::Whois::AttributeNotImplemented nil end
get_updated_on(parser)
click to toggle source
Get updated_on
@param [::Whois::Parser:] parser
@return [Date, nil]
# File lib/mihari/models/whois.rb, line 73 def get_updated_on(parser) parser.updated_on rescue ::Whois::AttributeNotImplemented nil end