class Shodanz::API::Exploits

The Exploits API provides access to several exploit and vulnerability data sources. At the moment, it searches across the following:

- Exploit DB
- Metasploit
- Common Vulnerabilities and Exposures (CVE)

@author Kent 'picat' Gruber

Constants

URL

The path to the REST API endpoint.

Attributes

key[RW]

@return [String]

Public Class Methods

new(key: ENV['SHODAN_API_KEY']) click to toggle source

@param key [String] SHODAN API key, defaulted to the SHODAN_API_KEY enviroment variable.

# File lib/shodanz/apis/exploits.rb, line 26
def initialize(key: ENV['SHODAN_API_KEY'])
  @url      = URL
  @client   = Async::HTTP::Client.new(Async::HTTP::Endpoint.parse(@url))
  self.key  = key

  warn 'No key has been found or provided!' unless key?
end

Public Instance Methods

count(query = '', facets: {}, page: 1, **params) click to toggle source

This method behaves identical to the “/search” method with the difference that it doesn't return any results.

Example

api.count(type: "dos")
# File lib/shodanz/apis/exploits.rb, line 60
def count(query = '', facets: {}, page: 1, **params)
  params[:query] = query
  params = turn_into_query(**params)
  facets = turn_into_facets(**facets)
  params[:page] = page
  get('api/count', **params.merge(**facets))
end
key?() click to toggle source

Check if there's an API key. @return [String]

# File lib/shodanz/apis/exploits.rb, line 36
def key?
  return true if @key

  false
end