shodanz 2.0.6 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +0 -7
- data/.github/workflows/{ci.yml → test.yml} +8 -11
- data/README.md +6 -25
- data/lib/shodanz/version.rb +1 -1
- data/lib/shodanz.rb +2 -2
- data/shodanz.gemspec +6 -6
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d92deb0585fd18e242bad0340ea6234d7660c8a2f39476f1fd38dbbf600b12f
|
4
|
+
data.tar.gz: 6d6527de39e62bb02fd31121f4f18267581ebe766ffb38a8298c828ac55e4e42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b99faadc4515a125fc64d001a79c7e6f0147b0e184a2cdf4b885d60eccb40783285be2ae16fb765b36ffce1df4bebc319435fec7432eb2a4993d7e65900edc6a
|
7
|
+
data.tar.gz: 23159690e115ea13f7e4013f9a0d2afd72d28da59830e6e675fb0c525907a2384d13fca71aac768eceaa706d33b29c810052c78ee8c4c2abbc20c8cfcb1bd978
|
data/.github/dependabot.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
name:
|
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
|
-
|
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@
|
22
|
-
-
|
23
|
-
uses: actions/setup-ruby@v1
|
21
|
+
- uses: actions/checkout@v3
|
22
|
+
- uses: ruby/setup-ruby@v1
|
24
23
|
with:
|
25
|
-
ruby-version: 2
|
26
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
26
|
-
|
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
|
|
data/lib/shodanz/version.rb
CHANGED
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
|
-
|
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.
|
24
|
-
spec.add_dependency 'async', '>= 1.17.1', '< 2.
|
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.
|
27
|
-
spec.add_development_dependency 'bundler', '~> 2.
|
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.
|
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.
|
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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/
|
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.
|
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.
|