Class: Mihari::Clients::VirusTotal
- Inherits:
-
Base
- Object
- Base
- Mihari::Clients::VirusTotal
show all
- Defined in:
- lib/mihari/clients/virustotal.rb
Overview
Instance Attribute Summary
Attributes inherited from Base
#base_url, #headers, #pagination_interval, #timeout
Instance Method Summary
collapse
Constructor Details
#initialize(base_url = "https://www.virustotal.com", api_key:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil) ⇒ VirusTotal
Returns a new instance of VirusTotal.
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/mihari/clients/virustotal.rb', line 16
def initialize(
base_url = "https://www.virustotal.com",
api_key:,
headers: {},
pagination_interval: Mihari.config.,
timeout: nil
)
raise(ArgumentError, "api_key is required") if api_key.nil?
["x-apikey"] = api_key
super(base_url, headers:, pagination_interval:, timeout:)
end
|
Instance Method Details
#domain_search(query) ⇒ Hash
35
36
37
|
# File 'lib/mihari/clients/virustotal.rb', line 35
def domain_search(query)
get_json "/api/v3/domains/#{query}/resolutions"
end
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/mihari/clients/virustotal.rb', line 65
def (query, pagination_limit: Mihari.config.)
cursor = nil
Enumerator.new do |y|
.times do
res = intel_search(query, cursor:)
y.yield res
cursor = res.meta.cursor
break if cursor.nil?
end
end
end
|
#ip_search(query) ⇒ Hash
44
45
46
|
# File 'lib/mihari/clients/virustotal.rb', line 44
def ip_search(query)
get_json "/api/v3/ip_addresses/#{query}/resolutions"
end
|