Class: Mihari::Clients::VirusTotal

Inherits:
Base
  • Object
show all
Defined in:
lib/mihari/clients/virustotal.rb

Instance Attribute Summary

Attributes inherited from Base

#base_url, #headers

Instance Method Summary collapse

Constructor Details

#initialize(base_url = "https://www.virustotal.com", api_key:, headers: {}) ⇒ VirusTotal

Returns a new instance of VirusTotal.

Parameters:

  • base_url (String) (defaults to: "https://www.virustotal.com")
  • api_key (String, nil)
  • headers (Hash) (defaults to: {})

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
# File 'lib/mihari/clients/virustotal.rb', line 11

def initialize(base_url = "https://www.virustotal.com", api_key:, headers: {})
  raise(ArgumentError, "'api_key' argument is required") if api_key.nil?

  headers["x-apikey"] = api_key

  super(base_url, headers: headers)
end

Instance Method Details

#domain_search(query) ⇒ Hash

Parameters:

  • query (String)

Returns:

  • (Hash)


24
25
26
# File 'lib/mihari/clients/virustotal.rb', line 24

def domain_search(query)
  _get("/api/v3/domains/#{query}/resolutions")
end

#intel_search(query, cursor: nil) ⇒ Hash

Parameters:

  • query (String)
  • cursor (String, nil) (defaults to: nil)

Returns:

  • (Hash)


43
44
45
46
# File 'lib/mihari/clients/virustotal.rb', line 43

def intel_search(query, cursor: nil)
  params = { query: query, cursor: cursor }.compact
  _get("/api/v3/intelligence/search", params: params)
end

#ip_search(query) ⇒ Hash

Parameters:

  • query (String)

Returns:

  • (Hash)


33
34
35
# File 'lib/mihari/clients/virustotal.rb', line 33

def ip_search(query)
  _get("/api/v3/ip_addresses/#{query}/resolutions")
end