class Mihari::Enrichers::IPInfo

Private Class Methods

query(ip) click to toggle source

Query IPInfo

@param [String] ip

@return [Mihari::Structs::IPInfo::Response, nil]

# File lib/mihari/enrichers/ipinfo.rb, line 29
def query(ip)
  headers = {}
  token = Mihari.config.ipinfo_api_key
  unless token.nil?
    headers[:authorization] = "Bearer #{token}"
  end

  begin
    res = HTTP.headers(headers).get("https://ipinfo.io/#{ip}/json")
    data = JSON.parse(res.body.to_s)

    Structs::IPInfo::Response.from_dynamic! data
  rescue HTTP::Error
    nil
  end
end

Public Instance Methods

valid?() click to toggle source

@return [Boolean]

# File lib/mihari/enrichers/ipinfo.rb, line 9
def valid?
  Mihari.config.ipinfo_api_key.nil?
end

Private Instance Methods

configuration_keys() click to toggle source
# File lib/mihari/enrichers/ipinfo.rb, line 15
def configuration_keys
  %w[ipinfo_api_key]
end