shodanz 2.0.6 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99a5e96240f1b07b93e2c291fe7881099b27f171210f2d5119235b790f4b8df8
4
- data.tar.gz: cd332d55feb245bf520fffde2cd8fde08684c07189e3131b9ad8243e23704a72
3
+ metadata.gz: 3d92deb0585fd18e242bad0340ea6234d7660c8a2f39476f1fd38dbbf600b12f
4
+ data.tar.gz: 6d6527de39e62bb02fd31121f4f18267581ebe766ffb38a8298c828ac55e4e42
5
5
  SHA512:
6
- metadata.gz: c3b310b4ecb5a9623b8b8c5921658363aa5eab7b38aa9b0b2dd94d025aba2833f979ef4de0906434f06e24ebce31ba2618103f17a09e4a790434f632c99a45b2
7
- data.tar.gz: b8114254a3f2e11da8d37532e723c2e1dd9d5e881de38cc0ee489a9ba7144393adb379b7994df404817c1cc22faa0d56eb930faf7049184d0092226c22eaaacb
6
+ metadata.gz: b99faadc4515a125fc64d001a79c7e6f0147b0e184a2cdf4b885d60eccb40783285be2ae16fb765b36ffce1df4bebc319435fec7432eb2a4993d7e65900edc6a
7
+ data.tar.gz: 23159690e115ea13f7e4013f9a0d2afd72d28da59830e6e675fb0c525907a2384d13fca71aac768eceaa706d33b29c810052c78ee8c4c2abbc20c8cfcb1bd978
@@ -6,10 +6,3 @@ updates:
6
6
  interval: daily
7
7
  time: "10:00"
8
8
  open-pull-requests-limit: 10
9
- ignore:
10
- - dependency-name: async-http
11
- versions:
12
- - 0.55.0
13
- - dependency-name: pry
14
- versions:
15
- - 0.14.0
@@ -1,4 +1,4 @@
1
- name: CI
1
+ name: Test
2
2
 
3
3
  on:
4
4
  push:
@@ -11,23 +11,20 @@ on:
11
11
  - cron: "0 9 * * *"
12
12
 
13
13
  jobs:
14
- test:
14
+ rspec:
15
15
  if: |
16
16
  github.actor == 'picatz' ||
17
17
  github.actor == 'dependabot[bot]' ||
18
18
  github.actor == 'dependabot-preview[bot]'
19
19
  runs-on: ubuntu-latest
20
20
  steps:
21
- - uses: actions/checkout@v1
22
- - name: Set up Ruby 2.7
23
- uses: actions/setup-ruby@v1
21
+ - uses: actions/checkout@v3
22
+ - uses: ruby/setup-ruby@v1
24
23
  with:
25
- ruby-version: 2.7.x
26
- - name: Rspec
24
+ ruby-version: '3.2'
25
+ bundler-cache: true
26
+ - name: RSpec
27
27
  env:
28
28
  SHODAN_API_KEY: ${{secrets.SHODAN_API_KEY}}
29
29
  run: |
30
- gem install bundler:2.2.33
31
- bundle _2.2.33_ install --jobs 4 --retry 3
32
- bundle exec rspec
33
-
30
+ bundle exec rake
data/README.md CHANGED
@@ -9,6 +9,7 @@ A modern, async Ruby [gem](https://rubygems.org/) for [Shodan](https://www.shoda
9
9
  ## Installation
10
10
 
11
11
  $ gem install shodanz
12
+
12
13
  ## Usage
13
14
 
14
15
  ```ruby
@@ -16,36 +17,16 @@ require "shodanz"
16
17
 
17
18
  client = Shodanz.client.new(key: "YOUR_API_KEY")
18
19
  ```
19
- > **NOTE:** You can also set the `SHODAN_API_KEY` environment variable instead of passing the API key as an argument when creating a client.
20
+
21
+ > **Note**
22
+ > You can also set the `SHODAN_API_KEY` environment variable instead of passing the API key as an argument when creating a client.
20
23
 
21
24
  ### Optional Async Support
22
25
 
23
26
  Shodanz utilizes [async](https://github.com/socketry/async) to provide asyncronous IO. This doesn't break any existing scripts using Shodanz, but now offers even more flexibility to write more awesome things, like this asyncronous honeypot detector:
24
27
 
25
- ```ruby
26
- require 'async'
27
- require 'shodanz'
28
-
29
- client = Shodanz.client.new
30
-
31
- # Asynchronously stream banner info from shodan and check any
32
- # IP addresses against the experimental honeypot scoring service.
33
- client.streaming_api.banners do |banner|
34
- if ip = banner['ip_str']
35
- Async do
36
- score = client.rest_api.honeypot_score(ip).wait
37
- puts "#{ip} has a #{score * 100}% chance of being a honeypot"
38
- rescue Shodanz::Errors::RateLimited
39
- sleep rand
40
- retry
41
- rescue # any other errors
42
- next
43
- end
44
- end
45
- end
46
- ```
47
-
48
- > **Note:** To run any Shodanz method asyncronously, simply wrap it in a `Async { ... }` block. To wait for any other async operation to finnish in the block, call `.wait` on it.
28
+ > **Note**
29
+ > To run any Shodanz method asyncronously, simply wrap it in a `Async { ... }` block. To wait for any other async operation to finnish in the block, call `.wait` on it.
49
30
 
50
31
  ## REST API
51
32
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shodanz
4
- VERSION = '2.0.6'
4
+ VERSION = '2.0.7'
5
5
  end
data/lib/shodanz.rb CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  require 'json'
4
4
  require 'async'
5
+ require 'console'
5
6
  require 'async/http/internet'
6
7
  require 'shodanz/version'
7
8
  require 'shodanz/errors'
8
9
  require 'shodanz/api'
9
10
  require 'shodanz/client'
10
11
 
11
- # disable async logs by default
12
- Async.logger.level = 4
12
+ Console.logger.level = 4
13
13
 
14
14
  # Shodanz is a modern Ruby gem for Shodan, the world's
15
15
  # first search engine for Internet-connected devices.
data/shodanz.gemspec CHANGED
@@ -20,13 +20,13 @@ Gem::Specification.new do |spec|
20
20
  end
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_dependency 'async-http', '>= 0.38.1', '< 0.57.0'
24
- spec.add_dependency 'async', '>= 1.17.1', '< 2.1.0'
23
+ spec.add_dependency 'async-http', '>= 0.38.1', '< 0.62.0'
24
+ spec.add_dependency 'async', '>= 1.17.1', '< 2.7.0'
25
25
 
26
- spec.add_development_dependency 'async-rspec', '~> 1.16.1'
27
- spec.add_development_dependency 'bundler', '~> 2.2.0'
26
+ spec.add_development_dependency 'async-rspec', '~> 1.17.0'
27
+ spec.add_development_dependency 'bundler', '~> 2.4.0'
28
28
  spec.add_development_dependency 'pry', '~> 0.14.1'
29
- spec.add_development_dependency 'rake', '~> 13.0.0'
29
+ spec.add_development_dependency 'rake', '~> 13.1.0'
30
30
  spec.add_development_dependency 'rb-readline', '~> 0.5.5'
31
- spec.add_development_dependency 'rspec', '~> 3.11.0'
31
+ spec.add_development_dependency 'rspec', '~> 3.12.0'
32
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shodanz
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kent 'picatz' Gruber
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-18 00:00:00.000000000 Z
11
+ date: 2023-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 0.38.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 0.57.0
22
+ version: 0.62.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: 0.38.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.57.0
32
+ version: 0.62.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: async
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: 1.17.1
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: 2.1.0
42
+ version: 2.7.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,35 +49,35 @@ dependencies:
49
49
  version: 1.17.1
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: 2.1.0
52
+ version: 2.7.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: async-rspec
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: 1.16.1
59
+ version: 1.17.0
60
60
  type: :development
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: 1.16.1
66
+ version: 1.17.0
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: bundler
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: 2.2.0
73
+ version: 2.4.0
74
74
  type: :development
75
75
  prerelease: false
76
76
  version_requirements: !ruby/object:Gem::Requirement
77
77
  requirements:
78
78
  - - "~>"
79
79
  - !ruby/object:Gem::Version
80
- version: 2.2.0
80
+ version: 2.4.0
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: pry
83
83
  requirement: !ruby/object:Gem::Requirement
@@ -98,14 +98,14 @@ dependencies:
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: 13.0.0
101
+ version: 13.1.0
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: 13.0.0
108
+ version: 13.1.0
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: rb-readline
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -126,14 +126,14 @@ dependencies:
126
126
  requirements:
127
127
  - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: 3.11.0
129
+ version: 3.12.0
130
130
  type: :development
131
131
  prerelease: false
132
132
  version_requirements: !ruby/object:Gem::Requirement
133
133
  requirements:
134
134
  - - "~>"
135
135
  - !ruby/object:Gem::Version
136
- version: 3.11.0
136
+ version: 3.12.0
137
137
  description: Featuring full support for the REST, Streaming and Exploits API
138
138
  email:
139
139
  - kgruber1@emich.edu
@@ -142,7 +142,7 @@ extensions: []
142
142
  extra_rdoc_files: []
143
143
  files:
144
144
  - ".github/dependabot.yml"
145
- - ".github/workflows/ci.yml"
145
+ - ".github/workflows/test.yml"
146
146
  - ".gitignore"
147
147
  - ".rspec"
148
148
  - CODE_OF_CONDUCT.md
@@ -171,7 +171,7 @@ homepage: https://github.com/picatz/shodanz
171
171
  licenses:
172
172
  - MIT
173
173
  metadata: {}
174
- post_install_message:
174
+ post_install_message:
175
175
  rdoc_options: []
176
176
  require_paths:
177
177
  - lib
@@ -186,8 +186,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  requirements: []
189
- rubygems_version: 3.0.6
190
- signing_key:
189
+ rubygems_version: 3.4.10
190
+ signing_key:
191
191
  specification_version: 4
192
192
  summary: A modern, async Ruby gem for Shodan, the world's first search engine for
193
193
  Internet-connected devices.