Sha256: 44f0fc744705d76bde95d2559b8216b98d2bc2c78078d0183ea6a518f5b434d2

Contents?: true

Size: 584 Bytes

Versions: 1

Compression:

Stored size: 584 Bytes

Contents

# frozen_string_literal: true

require "shodanz"

module Ryo
  module Plugin
    class Shodan
      attr_reader :client
      def initialize
        raise ArgumentError, "Please set your Shodan API key via ENV['SHODAN_API_KEY']" unless ENV["SHODAN_API_KEY"]
        @client = Shodanz.client.new
      end

      def discover(ip)
        ip == "N/A" ? { error: "Invalid IP" } : client.rest_api.host(ip)
      end

      def self.discover(ip)
        begin
          new.discover(ip)
        rescue ArgumentError => e
          { error: e.to_s }
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ryo-0.3.0 lib/ryo/plugin/shodan.rb