Class: Mihari::Enrichers::IPInfo

Inherits:
Base
  • Object
show all
Extended by:
Memist::Memoizable
Defined in:
lib/mihari/enrichers/ipinfo.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

inherited

Methods included from Mixins::Configurable

#configuration_keys?, #configuration_values, #configured?

Class Method Details

.query(ip) ⇒ Mihari::Structs::IPInfo::Response?

Query IPInfo

Parameters:

  • ip (String)

Returns:



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 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
    url = "https://ipinfo.io/#{ip}/json"
    res = HTTP.get(url, headers: headers)
    data = JSON.parse(res.body.to_s)

    Structs::IPInfo::Response.from_dynamic! data
  rescue HTTPError
    nil
  end
end

Instance Method Details

#valid?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/mihari/enrichers/ipinfo.rb', line 9

def valid?
  Mihari.config.ipinfo_api_key.nil?
end