whois 5.0.2 → 5.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +8 -0
- data/.github/workflows/codeql-analysis.yml +64 -0
- data/.github/workflows/release.yml +16 -0
- data/.github/workflows/tests.yml +29 -0
- data/.rubocop.yml +1 -0
- data/.rubocop_opinionated.yml +0 -22
- data/.rubocop_todo.yml +0 -76
- data/.tool-versions +1 -1
- data/CHANGELOG.md +8 -0
- data/CONTRIBUTING.md +12 -12
- data/Gemfile +1 -1
- data/LICENSE.txt +1 -1
- data/README.md +22 -22
- data/data/tld.json +1 -10
- data/lib/whois/client.rb +1 -1
- data/lib/whois/errors.rb +1 -1
- data/lib/whois/record/part.rb +2 -2
- data/lib/whois/record.rb +2 -2
- data/lib/whois/server/adapters/afilias.rb +1 -1
- data/lib/whois/server/adapters/arin.rb +4 -4
- data/lib/whois/server/adapters/arpa.rb +2 -4
- data/lib/whois/server/adapters/base.rb +23 -37
- data/lib/whois/server/adapters/formatted.rb +1 -1
- data/lib/whois/server/adapters/none.rb +1 -1
- data/lib/whois/server/adapters/not_implemented.rb +1 -1
- data/lib/whois/server/adapters/standard.rb +1 -1
- data/lib/whois/server/adapters/verisign.rb +1 -1
- data/lib/whois/server/adapters/web.rb +1 -1
- data/lib/whois/server/socket_handler.rb +1 -1
- data/lib/whois/server.rb +16 -27
- data/lib/whois/version.rb +2 -2
- data/lib/whois.rb +4 -4
- data/spec/spec_helper.rb +1 -3
- data/spec/support/helpers/connectivity_helper.rb +1 -3
- data/spec/whois/server/adapters/afilias_spec.rb +1 -1
- data/spec/whois/server/adapters/arin_spec.rb +2 -2
- data/spec/whois/server/adapters/formatted_spec.rb +1 -1
- data/spec/whois/server/adapters/not_implemented_spec.rb +1 -1
- data/spec/whois/server/adapters/verisign_spec.rb +2 -2
- data/spec/whois/server/adapters/web_spec.rb +1 -1
- metadata +11 -40
- data/.travis.yml +0 -18
- data/bin/setup +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57e93e3592c7474005c2c875c60b9631830d522ef138ffee62a65125fb0cf2f6
|
4
|
+
data.tar.gz: 2138fc21071a0fec27d38d46d193f422c41b4b424c5abea7e0c85e72a76180c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4296a63ef5057958e53dc08c654857956a7b46733d75264036fe29c621e484d04ef9555569a8add7f0a50db713a4d9a4a0b1b10b32ad87189068f871ca8c22b4
|
7
|
+
data.tar.gz: fc9f0066f3040855a0886acfa826cf4b76ecf83450b051b817c8d3b9925b29bef5aecc74ae10f4003f1e2b1bbd0ee4cabc15fabcadcd3ee6a8199eb5ae6f8f3c
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# For most projects, this workflow file will not need changing; you simply need
|
2
|
+
# to commit it to your repository.
|
3
|
+
#
|
4
|
+
# You may wish to alter this file to override the set of languages analyzed,
|
5
|
+
# or to provide custom queries or build logic.
|
6
|
+
name: "CodeQL"
|
7
|
+
|
8
|
+
on:
|
9
|
+
push:
|
10
|
+
branches: [ main ]
|
11
|
+
pull_request:
|
12
|
+
# The branches below must be a subset of the branches above
|
13
|
+
branches: [ main ]
|
14
|
+
schedule:
|
15
|
+
- cron: '39 4 * * 0'
|
16
|
+
|
17
|
+
jobs:
|
18
|
+
analyze:
|
19
|
+
name: Analyze
|
20
|
+
runs-on: ubuntu-latest
|
21
|
+
permissions:
|
22
|
+
actions: read
|
23
|
+
contents: read
|
24
|
+
security-events: write
|
25
|
+
|
26
|
+
strategy:
|
27
|
+
fail-fast: false
|
28
|
+
matrix:
|
29
|
+
language: [ 'ruby' ]
|
30
|
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
31
|
+
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
32
|
+
|
33
|
+
steps:
|
34
|
+
- name: Checkout repository
|
35
|
+
uses: actions/checkout@v2
|
36
|
+
|
37
|
+
# Initializes the CodeQL tools for scanning.
|
38
|
+
- name: Initialize CodeQL
|
39
|
+
uses: github/codeql-action/init@v1
|
40
|
+
with:
|
41
|
+
languages: ${{ matrix.language }}
|
42
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
43
|
+
# By default, queries listed here will override any specified in a config file.
|
44
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
45
|
+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
46
|
+
|
47
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
48
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
49
|
+
- name: Autobuild
|
50
|
+
uses: github/codeql-action/autobuild@v1
|
51
|
+
|
52
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
53
|
+
# 📚 https://git.io/JvXDl
|
54
|
+
|
55
|
+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
56
|
+
# and modify them (or add more) to build your code if your project
|
57
|
+
# uses a compiled language
|
58
|
+
|
59
|
+
#- run: |
|
60
|
+
# make bootstrap
|
61
|
+
# make release
|
62
|
+
|
63
|
+
- name: Perform CodeQL Analysis
|
64
|
+
uses: github/codeql-action/analyze@v1
|
@@ -0,0 +1,16 @@
|
|
1
|
+
name: release
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- v*.*.*
|
7
|
+
jobs:
|
8
|
+
release:
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
steps:
|
11
|
+
- uses: actions/checkout@v2
|
12
|
+
- name: Release Gem
|
13
|
+
uses: cadwallion/publish-rubygems-action@8f9e0538302643309e4e43bf48cd34173ca48cfc
|
14
|
+
env:
|
15
|
+
RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
16
|
+
RELEASE_COMMAND: rake release
|
@@ -0,0 +1,29 @@
|
|
1
|
+
name: Tests
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
workflow_dispatch:
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
build:
|
10
|
+
strategy:
|
11
|
+
matrix:
|
12
|
+
ruby-version:
|
13
|
+
- "2.6"
|
14
|
+
- "2.7"
|
15
|
+
- "3.0"
|
16
|
+
- "3.1"
|
17
|
+
platform: [ubuntu-latest]
|
18
|
+
runs-on: ${{ matrix.platform }}
|
19
|
+
steps:
|
20
|
+
- uses: actions/checkout@v2
|
21
|
+
- name: Set up Ruby
|
22
|
+
uses: ruby/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: ${{ matrix.ruby-version }}
|
25
|
+
- name: Install dependencies
|
26
|
+
run: bundle install
|
27
|
+
- name: Run tests
|
28
|
+
run: bundle exec rake
|
29
|
+
|
data/.rubocop.yml
CHANGED
data/.rubocop_opinionated.yml
CHANGED
@@ -95,12 +95,6 @@ Layout/EmptyLinesAroundModuleBody:
|
|
95
95
|
Layout/EmptyLineBetweenDefs:
|
96
96
|
Enabled: false
|
97
97
|
|
98
|
-
# I personally don't care about the format style.
|
99
|
-
# In most cases I like to use %, but not at the point I want to enforce it
|
100
|
-
# as a convention in the entire code.
|
101
|
-
Style/FormatString:
|
102
|
-
Enabled: false
|
103
|
-
|
104
98
|
# Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
|
105
99
|
# %s is a simpler and straightforward version that works in almost all cases. So don't complain.
|
106
100
|
Style/FormatStringToken:
|
@@ -110,11 +104,6 @@ Style/FormatStringToken:
|
|
110
104
|
Style/NegatedIf:
|
111
105
|
Enabled: false
|
112
106
|
|
113
|
-
# For years, %w() has been the de-facto standard. A lot of libraries are using ().
|
114
|
-
# Switching to [] would be a nightmare.
|
115
|
-
Style/PercentLiteralDelimiters:
|
116
|
-
Enabled: false
|
117
|
-
|
118
107
|
# There are cases were the inline rescue is ok. We can either downgrade the severity,
|
119
108
|
# or rely on the developer judgement on a case-by-case basis.
|
120
109
|
Style/RescueModifier:
|
@@ -123,17 +112,6 @@ Style/RescueModifier:
|
|
123
112
|
Style/SymbolArray:
|
124
113
|
EnforcedStyle: brackets
|
125
114
|
|
126
|
-
# Sorry, but using trailing spaces helps readability.
|
127
|
-
#
|
128
|
-
# %w( foo bar )
|
129
|
-
#
|
130
|
-
# looks better to me than
|
131
|
-
#
|
132
|
-
# %w( foo bar )
|
133
|
-
#
|
134
|
-
Layout/SpaceInsidePercentLiteralDelimiters:
|
135
|
-
Enabled: false
|
136
|
-
|
137
115
|
# Hate It or Love It, I prefer double quotes as this is more consistent
|
138
116
|
# with several other programming languages and the output of puts and inspect.
|
139
117
|
Style/StringLiterals:
|
data/.rubocop_todo.yml
CHANGED
@@ -45,13 +45,6 @@ RSpec/ExampleLength:
|
|
45
45
|
- 'spec/whois/server/socket_handler_spec.rb'
|
46
46
|
- 'spec/whois/server_spec.rb'
|
47
47
|
|
48
|
-
# Offense count: 2
|
49
|
-
# Cop supports --auto-correct.
|
50
|
-
# Configuration parameters: .
|
51
|
-
# SupportedStyles: implicit, each, example
|
52
|
-
RSpec/HookArgument:
|
53
|
-
EnforcedStyle: each
|
54
|
-
|
55
48
|
# Offense count: 4
|
56
49
|
# Configuration parameters: AssignmentOnly.
|
57
50
|
RSpec/InstanceVariable:
|
@@ -85,15 +78,6 @@ RSpec/PredicateMatcher:
|
|
85
78
|
- 'spec/whois/record_spec.rb'
|
86
79
|
- 'spec/whois/server/adapters/base_spec.rb'
|
87
80
|
|
88
|
-
# Offense count: 6
|
89
|
-
# Cop supports --auto-correct.
|
90
|
-
RSpec/ReceiveNever:
|
91
|
-
Exclude:
|
92
|
-
- 'spec/whois/server/adapters/afilias_spec.rb'
|
93
|
-
- 'spec/whois/server/adapters/arin_spec.rb'
|
94
|
-
- 'spec/whois/server/adapters/formatted_spec.rb'
|
95
|
-
- 'spec/whois/server/adapters/verisign_spec.rb'
|
96
|
-
|
97
81
|
# Offense count: 40
|
98
82
|
RSpec/StubbedMock:
|
99
83
|
Exclude:
|
@@ -114,16 +98,6 @@ RSpec/SubjectStub:
|
|
114
98
|
Exclude:
|
115
99
|
- 'spec/whois/server/socket_handler_spec.rb'
|
116
100
|
|
117
|
-
# Offense count: 4
|
118
|
-
# Cop supports --auto-correct.
|
119
|
-
# Configuration parameters: EnforcedStyle.
|
120
|
-
# SupportedStyles: prefer_alias, prefer_alias_method
|
121
|
-
Style/Alias:
|
122
|
-
Exclude:
|
123
|
-
- 'lib/whois.rb'
|
124
|
-
- 'lib/whois/record.rb'
|
125
|
-
- 'lib/whois/server/adapters/base.rb'
|
126
|
-
|
127
101
|
# Offense count: 31
|
128
102
|
# Cop supports --auto-correct.
|
129
103
|
# Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, IgnoredMethods, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
|
@@ -169,24 +143,6 @@ Style/GuardClause:
|
|
169
143
|
- 'lib/whois/server/adapters/verisign.rb'
|
170
144
|
- 'spec/support/helpers/connectivity_helper.rb'
|
171
145
|
|
172
|
-
# Offense count: 8
|
173
|
-
# Cop supports --auto-correct.
|
174
|
-
Style/IfUnlessModifier:
|
175
|
-
Exclude:
|
176
|
-
- 'lib/whois/server.rb'
|
177
|
-
- 'lib/whois/server/adapters/arpa.rb'
|
178
|
-
- 'spec/spec_helper.rb'
|
179
|
-
- 'spec/support/helpers/connectivity_helper.rb'
|
180
|
-
|
181
|
-
# Offense count: 1
|
182
|
-
# Cop supports --auto-correct.
|
183
|
-
# Configuration parameters: EnforcedStyle, IgnoredMethods.
|
184
|
-
# SupportedStyles: predicate, comparison
|
185
|
-
Style/NumericPredicate:
|
186
|
-
Exclude:
|
187
|
-
- 'spec/**/*'
|
188
|
-
- 'lib/whois/record/part.rb'
|
189
|
-
|
190
146
|
# Offense count: 13
|
191
147
|
# Cop supports --auto-correct.
|
192
148
|
Style/ParallelAssignment:
|
@@ -194,32 +150,6 @@ Style/ParallelAssignment:
|
|
194
150
|
- 'spec/whois/record_spec.rb'
|
195
151
|
- 'spec/whois/server/adapters/base_spec.rb'
|
196
152
|
|
197
|
-
# Offense count: 3
|
198
|
-
# Cop supports --auto-correct.
|
199
|
-
Style/PerlBackrefs:
|
200
|
-
Exclude:
|
201
|
-
- 'lib/whois/server/adapters/arin.rb'
|
202
|
-
|
203
|
-
# Offense count: 1
|
204
|
-
# Cop supports --auto-correct.
|
205
|
-
Style/RedundantParentheses:
|
206
|
-
Exclude:
|
207
|
-
- 'lib/whois/server/adapters/base.rb'
|
208
|
-
|
209
|
-
# Offense count: 5
|
210
|
-
# Cop supports --auto-correct.
|
211
|
-
Style/RedundantSelf:
|
212
|
-
Exclude:
|
213
|
-
- 'lib/whois/server/adapters/base.rb'
|
214
|
-
|
215
|
-
# Offense count: 1
|
216
|
-
# Cop supports --auto-correct.
|
217
|
-
# Configuration parameters: EnforcedStyle, AllowInnerSlashes.
|
218
|
-
# SupportedStyles: slashes, percent_r, mixed
|
219
|
-
Style/RegexpLiteral:
|
220
|
-
Exclude:
|
221
|
-
- 'lib/whois/server/adapters/arin.rb'
|
222
|
-
|
223
153
|
# Offense count: 1
|
224
154
|
# Cop supports --auto-correct.
|
225
155
|
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
|
@@ -234,9 +164,3 @@ Style/SafeNavigation:
|
|
234
164
|
# SupportedStyles: single_quotes, double_quotes
|
235
165
|
Style/StringLiterals:
|
236
166
|
Enabled: false
|
237
|
-
|
238
|
-
# Offense count: 1
|
239
|
-
# Cop supports --auto-correct.
|
240
|
-
Style/ZeroLengthPredicate:
|
241
|
-
Exclude:
|
242
|
-
- 'lib/whois/record/part.rb'
|
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby
|
1
|
+
ruby 3.0.3
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,14 @@
|
|
3
3
|
This project uses [Semantic Versioning 2.0.0](http://semver.org/).
|
4
4
|
|
5
5
|
|
6
|
+
## Release 5.1.0
|
7
|
+
|
8
|
+
### Changed
|
9
|
+
|
10
|
+
- SERVER: Deleted .VISTAPRINT, .XN--ESTV75G
|
11
|
+
- CHANGED: Eager load all adapters (GH-644). Thanks @casperisfine @byroot
|
12
|
+
|
13
|
+
|
6
14
|
## Release 5.0.2
|
7
15
|
|
8
16
|
### Changed
|
data/CONTRIBUTING.md
CHANGED
@@ -4,39 +4,39 @@
|
|
4
4
|
|
5
5
|
Fork, then clone the repo:
|
6
6
|
|
7
|
-
|
7
|
+
```
|
8
8
|
git clone git@github.com:your-username/whois.git
|
9
|
-
|
9
|
+
```
|
10
10
|
|
11
11
|
Set up your machine:
|
12
12
|
|
13
|
-
|
13
|
+
```
|
14
14
|
bundle
|
15
|
-
|
15
|
+
```
|
16
16
|
|
17
17
|
Make sure the tests pass:
|
18
18
|
|
19
|
-
|
19
|
+
```
|
20
20
|
bundle exec rake
|
21
|
-
|
21
|
+
```
|
22
22
|
|
23
23
|
To propose a change/feature/patch, create your feature branch:
|
24
24
|
|
25
|
-
|
25
|
+
```
|
26
26
|
git checkout -b my-new-feature
|
27
|
-
|
27
|
+
```
|
28
28
|
|
29
29
|
Make your change. Add tests for your change. Make the tests pass:
|
30
30
|
|
31
|
-
|
31
|
+
```
|
32
32
|
bundle exec rake
|
33
|
-
|
33
|
+
```
|
34
34
|
|
35
35
|
Commit your changes:
|
36
36
|
|
37
|
-
|
37
|
+
```
|
38
38
|
git commit -am 'Add some feature'
|
39
|
-
|
39
|
+
```
|
40
40
|
|
41
41
|
Push to your fork and [submit a pull request](https://github.com/weppos/whois/compare/).
|
42
42
|
|
data/Gemfile
CHANGED
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2009-
|
3
|
+
Copyright (c) 2009-2022 Simone Carletti
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
This library was extracted from [RoboWhois](https://robowhois.com/) and [RoboDomain](https://robodomain.com/), and it's now in use at [DNSimple](https://dnsimple.com/). It has been performing queries in production since July 2009.
|
6
6
|
|
7
|
-
[![Build Status](https://
|
7
|
+
[![Build Status](https://github.com/weppos/whois/actions/workflows/tests.yml/badge.svg)](https://github.com/weppos/whois/actions/workflows/tests.yml)
|
8
8
|
|
9
9
|
|
10
10
|
## Donate a coffee
|
@@ -42,25 +42,25 @@ For older versions of Ruby, see the [CHANGELOG](CHANGELOG.md).
|
|
42
42
|
|
43
43
|
You can install the gem manually:
|
44
44
|
|
45
|
-
|
45
|
+
```shell
|
46
46
|
gem install whois
|
47
|
-
|
47
|
+
```
|
48
48
|
|
49
49
|
Or use [Bundler](http://bundler.io/) and define it as a dependency in your `Gemfile`:
|
50
50
|
|
51
|
-
|
51
|
+
```ruby
|
52
52
|
gem 'whois'
|
53
|
-
|
53
|
+
```
|
54
54
|
|
55
55
|
To use the WHOIS parser component you need to install the `whois-parser` gem:
|
56
56
|
|
57
|
-
|
57
|
+
```shell
|
58
58
|
gem install whois-parser
|
59
|
-
|
59
|
+
```
|
60
60
|
|
61
|
-
|
61
|
+
```ruby
|
62
62
|
gem 'whois-parser'
|
63
|
-
|
63
|
+
```
|
64
64
|
|
65
65
|
The `whois-parser` gem already depends on the `whois` gem. If you install `whois-parser`, `whois` will be installed as well and it will also be automatically required when you `require 'whois-parser'`.
|
66
66
|
|
@@ -77,7 +77,7 @@ This section covers only the essentials for getting started with the Whois libra
|
|
77
77
|
|
78
78
|
Check out the following examples:
|
79
79
|
|
80
|
-
|
80
|
+
```ruby
|
81
81
|
# Domain WHOIS
|
82
82
|
whois = Whois::Client.new
|
83
83
|
whois.lookup("google.com")
|
@@ -97,29 +97,29 @@ whois.lookup("74.125.67.100")
|
|
97
97
|
whois = Whois::Client.new
|
98
98
|
whois.lookup("2001:db8::1428:57ab")
|
99
99
|
# => #<Whois::Record>
|
100
|
-
|
100
|
+
```
|
101
101
|
|
102
102
|
The query method is stateless. For this reason, you can safely re-use the same client instance for multiple queries.
|
103
103
|
|
104
|
-
|
104
|
+
```ruby
|
105
105
|
whois = Whois::Client.new
|
106
106
|
whois.lookup("google.com")
|
107
107
|
whois.lookup(".com")
|
108
108
|
whois.lookup("74.125.67.100")
|
109
109
|
whois.lookup("2001:db8::1428:57ab")
|
110
110
|
whois.lookup("google.it")
|
111
|
-
|
111
|
+
```
|
112
112
|
|
113
113
|
If you just need a WHOIS response and you don't care about a full control of the WHOIS client, the `Whois` module provides an all-in-one method called `Whois.whois`. This is the simplest way to send a WHOIS request.
|
114
114
|
|
115
|
-
|
115
|
+
```ruby
|
116
116
|
Whois.whois("google.com")
|
117
117
|
# => #<Whois::Record>
|
118
|
-
|
118
|
+
```
|
119
119
|
|
120
120
|
Did I mention you can even use blocks?
|
121
121
|
|
122
|
-
|
122
|
+
```ruby
|
123
123
|
Whois::Client.new do |w|
|
124
124
|
w.lookup("google.com")
|
125
125
|
w.lookup(".com")
|
@@ -127,7 +127,7 @@ Whois::Client.new do |w|
|
|
127
127
|
w.lookup("2001:db8::1428:57ab")
|
128
128
|
w.lookup("google.it")
|
129
129
|
end
|
130
|
-
|
130
|
+
```
|
131
131
|
|
132
132
|
### Consuming the Record
|
133
133
|
|
@@ -135,7 +135,7 @@ Any WHOIS query returns a `Whois::Record`. This object looks like a String, but
|
|
135
135
|
|
136
136
|
`Whois::Record` encapsulates a WHOIS record and provides the ability to parse the WHOIS response programmatically, when the `whois-parser` gem is installed and loaded.
|
137
137
|
|
138
|
-
|
138
|
+
```ruby
|
139
139
|
require 'whois-parser'
|
140
140
|
|
141
141
|
record = Whois.whois("google.it")
|
@@ -162,7 +162,7 @@ tech.name
|
|
162
162
|
parser.nameservers.each do |nameserver|
|
163
163
|
puts nameserver
|
164
164
|
end
|
165
|
-
|
165
|
+
```
|
166
166
|
|
167
167
|
This feature is made possible by the <tt>Whois</tt> record parsers. Unfortunately, due to the lack of a global standard, each WHOIS server requires a specific parser. For this reason, the library doesn't support all existing WHOIS servers.
|
168
168
|
|
@@ -174,14 +174,14 @@ By default, each query run though the client has a timeout value of 5 seconds. I
|
|
174
174
|
|
175
175
|
Of course, you can customize the timeout value setting a different value. If timeout is `nil`, the client will wait until the response is sent back from the server or the process is killed. Don't disable the timeout unless you really know what you are doing!
|
176
176
|
|
177
|
-
|
177
|
+
```ruby
|
178
178
|
whois = Whois::Client.new(:timeout => 10)
|
179
179
|
whois.timeout # => 10
|
180
180
|
whois.timeout = 5
|
181
181
|
whois.timeout # => 5
|
182
182
|
|
183
183
|
whois.lookup("google.com")
|
184
|
-
|
184
|
+
```
|
185
185
|
|
186
186
|
|
187
187
|
## Credits
|
@@ -213,4 +213,4 @@ Report issues or feature requests to [GitHub Issues](https://github.com/weppos/w
|
|
213
213
|
|
214
214
|
## License
|
215
215
|
|
216
|
-
Copyright (c) 2009-
|
216
|
+
Copyright (c) 2009-2022 [Simone Carletti](https://simonecarletti.com/). This is Free Software distributed under the MIT license.
|
data/data/tld.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"_": {
|
3
3
|
"schema": "2",
|
4
|
-
"updated": "2021-03-02 11:
|
4
|
+
"updated": "2021-03-02 11:55:00 UTC"
|
5
5
|
},
|
6
6
|
"aaa": {
|
7
7
|
"_type": "newgtld",
|
@@ -5871,10 +5871,6 @@
|
|
5871
5871
|
"_type": "newgtld",
|
5872
5872
|
"host": "whois.nic.vision"
|
5873
5873
|
},
|
5874
|
-
"vistaprint": {
|
5875
|
-
"_type": "newgtld",
|
5876
|
-
"host": "whois.nic.vistaprint"
|
5877
|
-
},
|
5878
5874
|
"viva": {
|
5879
5875
|
"_group": "centralnic",
|
5880
5876
|
"_type": "newgtld",
|
@@ -6314,11 +6310,6 @@
|
|
6314
6310
|
"_type": "newgtld",
|
6315
6311
|
"host": "whois.nic.xn--efvy88h"
|
6316
6312
|
},
|
6317
|
-
"xn--estv75g": {
|
6318
|
-
"_group": "afiliassrs",
|
6319
|
-
"_type": "newgtld",
|
6320
|
-
"host": "whois.nic.xn--estv75g"
|
6321
|
-
},
|
6322
6313
|
"xn--fct429k": {
|
6323
6314
|
"_group": "amazonregistry",
|
6324
6315
|
"_type": "newgtld",
|
data/lib/whois/client.rb
CHANGED
data/lib/whois/errors.rb
CHANGED
data/lib/whois/record/part.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# An intelligent pure Ruby WHOIS client and parser.
|
7
7
|
#
|
8
|
-
# Copyright (c) 2009-
|
8
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
9
9
|
#++
|
10
10
|
|
11
11
|
|
@@ -26,7 +26,7 @@ module Whois
|
|
26
26
|
def initialize(*args)
|
27
27
|
if args.first.is_a? Hash
|
28
28
|
initialize_with_hash(args.first)
|
29
|
-
elsif args.size
|
29
|
+
elsif args.size.zero?
|
30
30
|
super
|
31
31
|
else
|
32
32
|
raise ArgumentError
|
data/lib/whois/record.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# An intelligent pure Ruby WHOIS client and parser.
|
7
7
|
#
|
8
|
-
# Copyright (c) 2009-
|
8
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
9
9
|
#++
|
10
10
|
|
11
11
|
|
@@ -67,7 +67,7 @@ module Whois
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
|
70
|
+
alias eql? ==
|
71
71
|
|
72
72
|
|
73
73
|
# Invokes {#match} on record {#content}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# An intelligent pure Ruby WHOIS client and parser.
|
7
7
|
#
|
8
|
-
# Copyright (c) 2009-
|
8
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
9
9
|
#++
|
10
10
|
|
11
11
|
|
@@ -40,11 +40,11 @@ module Whois
|
|
40
40
|
private
|
41
41
|
|
42
42
|
def extract_referral(response)
|
43
|
-
return unless response =~
|
43
|
+
return unless response =~ %r{ReferralServer:\s*r?whois://([\w.-]+)(?::(\d+))?}
|
44
44
|
|
45
45
|
{
|
46
|
-
host:
|
47
|
-
port:
|
46
|
+
host: Regexp.last_match(1),
|
47
|
+
port: Regexp.last_match(2) ? Regexp.last_match(2).to_i : nil,
|
48
48
|
}
|
49
49
|
end
|
50
50
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# An intelligent pure Ruby WHOIS client and parser.
|
7
7
|
#
|
8
|
-
# Copyright (c) 2009-
|
8
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
9
9
|
#++
|
10
10
|
|
11
11
|
|
@@ -30,9 +30,7 @@ module Whois
|
|
30
30
|
# "192.in-addr.arpa" => "192.0.0.0"
|
31
31
|
# "in-addr.arpa" => "0.0.0.0"
|
32
32
|
def inaddr_to_ip(string)
|
33
|
-
unless string.match?(/^([0-9]{1,3}\.?){0,4}in-addr\.arpa$/)
|
34
|
-
raise ServerError, "Invalid .in-addr.arpa address"
|
35
|
-
end
|
33
|
+
raise ServerError, "Invalid .in-addr.arpa address" unless string.match?(/^([0-9]{1,3}\.?){0,4}in-addr\.arpa$/)
|
36
34
|
|
37
35
|
a, b, c, d = string.scan(/[0-9]{1,3}\./).reverse
|
38
36
|
[a, b, c, d].map do |token|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# An intelligent pure Ruby WHOIS client and parser.
|
7
7
|
#
|
8
|
-
# Copyright (c) 2009-
|
8
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
9
9
|
#++
|
10
10
|
|
11
11
|
|
@@ -48,15 +48,10 @@ module Whois
|
|
48
48
|
attr_reader :buffer
|
49
49
|
|
50
50
|
|
51
|
-
# @param [Symbol] type
|
52
|
-
#
|
53
|
-
#
|
54
|
-
# @param [
|
55
|
-
# The allocation, range or hostname, this server is responsible for.
|
56
|
-
# @param [String, nil] host
|
57
|
-
# The server hostname. Use nil if unknown or not available.
|
58
|
-
# @param [Hash] options Optional adapter properties.
|
59
|
-
#
|
51
|
+
# @param type [Symbol] the type of WHOIS adapter to define. Known values are :tld, :ipv4, :ipv6,
|
52
|
+
# @param allocation [String] the allocation, range or hostname, this server is responsible for.
|
53
|
+
# @param host [String, nil] the server hostname. Use nil if unknown or not available.
|
54
|
+
# @param options [Hash] optional adapter properties
|
60
55
|
def initialize(type, allocation, host, options = {})
|
61
56
|
@type = type
|
62
57
|
@allocation = allocation
|
@@ -66,53 +61,44 @@ module Whois
|
|
66
61
|
|
67
62
|
# Checks self and other for equality.
|
68
63
|
#
|
69
|
-
# @param [The Whois::Server::Adapters::Base]
|
70
|
-
# @return [Boolean]
|
64
|
+
# @param other [The Whois::Server::Adapters::Base]
|
65
|
+
# @return [Boolean] true if the other is the same object,
|
71
66
|
# or <tt>other</tt> attributes matches this object attributes.
|
72
|
-
#
|
73
67
|
def ==(other)
|
74
|
-
(
|
75
|
-
self.equal?(other)
|
76
|
-
) || (
|
68
|
+
equal?(other) || (
|
77
69
|
other.is_a?(self.class) &&
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
70
|
+
type == other.type &&
|
71
|
+
allocation == other.allocation &&
|
72
|
+
host == other.host &&
|
73
|
+
options == other.options
|
82
74
|
)
|
83
75
|
end
|
84
76
|
|
85
|
-
|
77
|
+
alias eql? ==
|
86
78
|
|
87
79
|
|
88
80
|
# Merges given +settings+ into current {#options}.
|
89
81
|
#
|
90
|
-
# @param [Hash]
|
91
|
-
# @return [Hash]
|
92
|
-
#
|
82
|
+
# @param settings [Hash]
|
83
|
+
# @return [Hash] the updated options for this object
|
93
84
|
def configure(settings)
|
94
85
|
@host = settings[:host] if settings[:host]
|
95
86
|
options.merge!(settings)
|
96
87
|
end
|
97
88
|
|
98
89
|
|
99
|
-
# Performs a Whois lookup for <tt>string</tt>
|
100
|
-
# using the current server adapter.
|
90
|
+
# Performs a Whois lookup for <tt>string</tt> using the current server adapter.
|
101
91
|
#
|
102
|
-
# Internally, this method calls {#request}
|
103
|
-
# using the Template Method design pattern.
|
92
|
+
# Internally, this method calls {#request} using the Template Method design pattern.
|
104
93
|
#
|
105
94
|
# server.lookup("google.com")
|
106
95
|
# # => Whois::Record
|
107
96
|
#
|
108
|
-
# @param [String]
|
97
|
+
# @param string [String] the string to query
|
109
98
|
# @return [Whois::Record]
|
110
|
-
#
|
111
99
|
def lookup(string)
|
112
|
-
buffer_start
|
113
|
-
|
114
|
-
Whois::Record.new(self, buffer.dup)
|
115
|
-
end
|
100
|
+
parts = buffer_start { request(string) }
|
101
|
+
Whois::Record.new(self, parts)
|
116
102
|
end
|
117
103
|
|
118
104
|
# Performs the real WHOIS request.
|
@@ -121,11 +107,10 @@ module Whois
|
|
121
107
|
# it is intended to be overwritten in the concrete subclasses.
|
122
108
|
# This is the heart of the Template Method design pattern.
|
123
109
|
#
|
124
|
-
# @param [String]
|
110
|
+
# @param string [String] the string to query
|
125
111
|
# @return [void]
|
126
112
|
# @raise [NotImplementedError]
|
127
113
|
# @abstract
|
128
|
-
#
|
129
114
|
def request(string)
|
130
115
|
raise NotImplementedError
|
131
116
|
end
|
@@ -149,6 +134,7 @@ module Whois
|
|
149
134
|
def buffer_start
|
150
135
|
@buffer ||= []
|
151
136
|
yield(@buffer)
|
137
|
+
@buffer.dup
|
152
138
|
ensure
|
153
139
|
@buffer.clear
|
154
140
|
end
|
@@ -183,7 +169,7 @@ module Whois
|
|
183
169
|
self.class.query_handler.call(query, *args)
|
184
170
|
end
|
185
171
|
|
186
|
-
alias
|
172
|
+
alias query_the_socket query
|
187
173
|
|
188
174
|
end
|
189
175
|
|
data/lib/whois/server.rb
CHANGED
@@ -5,13 +5,22 @@
|
|
5
5
|
#
|
6
6
|
# An intelligent pure Ruby WHOIS client and parser.
|
7
7
|
#
|
8
|
-
# Copyright (c) 2009-
|
8
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
9
9
|
#++
|
10
10
|
|
11
11
|
|
12
12
|
require 'ipaddr'
|
13
13
|
require 'json'
|
14
|
-
require
|
14
|
+
require "whois/server/adapters/base"
|
15
|
+
require "whois/server/adapters/arin"
|
16
|
+
require "whois/server/adapters/arpa"
|
17
|
+
require "whois/server/adapters/afilias"
|
18
|
+
require "whois/server/adapters/formatted"
|
19
|
+
require "whois/server/adapters/none"
|
20
|
+
require "whois/server/adapters/not_implemented"
|
21
|
+
require "whois/server/adapters/standard"
|
22
|
+
require "whois/server/adapters/verisign"
|
23
|
+
require "whois/server/adapters/web"
|
15
24
|
|
16
25
|
|
17
26
|
module Whois
|
@@ -27,16 +36,6 @@ module Whois
|
|
27
36
|
# WHOIS server adapters. Each adapter is a subclass of {Whois::Server::Adapters::Base},
|
28
37
|
# customized to handle WHOIS queries for a type or a group of servers.
|
29
38
|
module Adapters
|
30
|
-
autoload :Base, "whois/server/adapters/base"
|
31
|
-
autoload :Arin, "whois/server/adapters/arin"
|
32
|
-
autoload :Arpa, "whois/server/adapters/arpa"
|
33
|
-
autoload :Afilias, "whois/server/adapters/afilias"
|
34
|
-
autoload :Formatted, "whois/server/adapters/formatted"
|
35
|
-
autoload :None, "whois/server/adapters/none"
|
36
|
-
autoload :NotImplemented, "whois/server/adapters/not_implemented"
|
37
|
-
autoload :Standard, "whois/server/adapters/standard"
|
38
|
-
autoload :Verisign, "whois/server/adapters/verisign"
|
39
|
-
autoload :Web, "whois/server/adapters/web"
|
40
39
|
end
|
41
40
|
|
42
41
|
# @return [Array<Symbol>] the definition types
|
@@ -236,19 +235,13 @@ module Whois
|
|
236
235
|
# but the object type doesn't have any supported WHOIS adapter associated.
|
237
236
|
def guess(string)
|
238
237
|
# Top Level Domain match
|
239
|
-
if matches_tld?(string)
|
240
|
-
return factory(:tld, ".", "whois.iana.org")
|
241
|
-
end
|
238
|
+
return factory(:tld, ".", "whois.iana.org") if matches_tld?(string)
|
242
239
|
|
243
240
|
# IP address (secure match)
|
244
|
-
if matches_ip?(string)
|
245
|
-
return find_for_ip(string)
|
246
|
-
end
|
241
|
+
return find_for_ip(string) if matches_ip?(string)
|
247
242
|
|
248
243
|
# Email Address (secure match)
|
249
|
-
if matches_email?(string)
|
250
|
-
return find_for_email(string)
|
251
|
-
end
|
244
|
+
return find_for_email(string) if matches_email?(string)
|
252
245
|
|
253
246
|
# Domain Name match
|
254
247
|
if (server = find_for_domain(string))
|
@@ -256,9 +249,7 @@ module Whois
|
|
256
249
|
end
|
257
250
|
|
258
251
|
# ASN match
|
259
|
-
if matches_asn?(string)
|
260
|
-
return find_for_asn(string)
|
261
|
-
end
|
252
|
+
return find_for_asn(string) if matches_asn?(string)
|
262
253
|
|
263
254
|
# Game Over
|
264
255
|
raise ServerNotFound, "Unable to find a WHOIS server for `#{string}'"
|
@@ -278,9 +269,7 @@ module Whois
|
|
278
269
|
ip = IPAddr.new(string)
|
279
270
|
type = ip.ipv4? ? TYPE_IPV4 : TYPE_IPV6
|
280
271
|
_definitions(type).each do |_, definition|
|
281
|
-
if IPAddr.new(definition.first).include?(ip)
|
282
|
-
return factory(type, *definition)
|
283
|
-
end
|
272
|
+
return factory(type, *definition) if IPAddr.new(definition.first).include?(ip)
|
284
273
|
end
|
285
274
|
rescue ArgumentError
|
286
275
|
# continue
|
data/lib/whois/version.rb
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
#
|
6
6
|
# An intelligent pure Ruby WHOIS client and parser.
|
7
7
|
#
|
8
|
-
# Copyright (c) 2009-
|
8
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
9
9
|
#++
|
10
10
|
|
11
11
|
|
12
12
|
module Whois
|
13
13
|
# The current library version.
|
14
|
-
VERSION = "5.0
|
14
|
+
VERSION = "5.1.0"
|
15
15
|
end
|
data/lib/whois.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# An intelligent pure Ruby WHOIS client and parser.
|
7
7
|
#
|
8
|
-
# Copyright (c) 2009-
|
8
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
9
9
|
#++
|
10
10
|
|
11
11
|
|
@@ -37,7 +37,7 @@ module Whois
|
|
37
37
|
Client.new.lookup(object)
|
38
38
|
end
|
39
39
|
|
40
|
-
|
40
|
+
alias whois lookup
|
41
41
|
|
42
42
|
|
43
43
|
# @deprecated
|
@@ -47,7 +47,7 @@ module Whois
|
|
47
47
|
return
|
48
48
|
end
|
49
49
|
|
50
|
-
deprecate(%{Whois.available? is deprecated. Call Whois.whois("#{object}").available?})
|
50
|
+
deprecate(%{Whois.available? is deprecated. Call Whois.whois("#{object}").parser.available?})
|
51
51
|
|
52
52
|
result = lookup(object).parser.available?
|
53
53
|
if result.nil?
|
@@ -64,7 +64,7 @@ module Whois
|
|
64
64
|
return
|
65
65
|
end
|
66
66
|
|
67
|
-
deprecate(%{Whois.registered? is deprecated. Call Whois.whois("#{object}").
|
67
|
+
deprecate(%{Whois.registered? is deprecated. Call Whois.whois("#{object}").parser.registered?})
|
68
68
|
|
69
69
|
result = lookup(object).parser.registered?
|
70
70
|
if result.nil?
|
data/spec/spec_helper.rb
CHANGED
@@ -3,9 +3,7 @@
|
|
3
3
|
require 'rspec'
|
4
4
|
require 'whois'
|
5
5
|
|
6
|
-
unless defined?(SPEC_ROOT)
|
7
|
-
SPEC_ROOT = File.expand_path(__dir__)
|
8
|
-
end
|
6
|
+
SPEC_ROOT = File.expand_path(__dir__) unless defined?(SPEC_ROOT)
|
9
7
|
|
10
8
|
# The fixtures are UTF-8 encoded.
|
11
9
|
# Make sure Ruby uses the proper encoding.
|
@@ -39,7 +39,7 @@ describe Whois::Server::Adapters::Afilias do
|
|
39
39
|
referral = File.read(fixture("referrals/afilias.bz.txt"))
|
40
40
|
server.options[:referral] = false
|
41
41
|
expect(server.query_handler).to receive(:call).with("example.test", "whois.afilias-grs.info", 43).and_return(referral)
|
42
|
-
expect(server.query_handler).
|
42
|
+
expect(server.query_handler).not_to receive(:call).with("example.test", "whois.belizenic.bz", 43)
|
43
43
|
|
44
44
|
record = server.lookup("example.test")
|
45
45
|
expect(record.parts.size).to eq(1)
|
@@ -52,7 +52,7 @@ describe Whois::Server::Adapters::Arin do
|
|
52
52
|
referral = File.read(fixture("referrals/arin_referral_whois.txt"))
|
53
53
|
server.options[:referral] = false
|
54
54
|
expect(server.query_handler).to receive(:call).with("n + 0.0.0.0", "whois.arin.net", 43).and_return(referral)
|
55
|
-
expect(server.query_handler).
|
55
|
+
expect(server.query_handler).not_to receive(:call).with("0.0.0.0", "whois.ripe.net", 43)
|
56
56
|
|
57
57
|
record = server.lookup("0.0.0.0")
|
58
58
|
expect(record.parts.size).to eq(1)
|
@@ -61,7 +61,7 @@ describe Whois::Server::Adapters::Arin do
|
|
61
61
|
it "ignores referral (gracefully) if missing" do
|
62
62
|
referral = File.read(fixture("referrals/arin_referral_missing.txt"))
|
63
63
|
expect(server.query_handler).to receive(:call).with("n + 0.0.0.0", "whois.arin.net", 43).and_return(referral)
|
64
|
-
expect(server.query_handler).
|
64
|
+
expect(server.query_handler).not_to receive(:call)
|
65
65
|
|
66
66
|
record = server.lookup("0.0.0.0")
|
67
67
|
expect(record.parts.size).to eq(1)
|
@@ -21,7 +21,7 @@ describe Whois::Server::Adapters::Formatted do
|
|
21
21
|
context "without format option" do
|
22
22
|
it "raises an error" do
|
23
23
|
server = described_class.new(:tld, ".de", "whois.denic.de", {})
|
24
|
-
expect(server.query_handler).
|
24
|
+
expect(server.query_handler).not_to receive(:call)
|
25
25
|
|
26
26
|
expect {
|
27
27
|
server.lookup("domain.de")
|
@@ -39,7 +39,7 @@ describe Whois::Server::Adapters::Verisign do
|
|
39
39
|
referral = File.read(fixture("referrals/crsnic.com.txt"))
|
40
40
|
server.options[:referral] = false
|
41
41
|
expect(server.query_handler).to receive(:call).with("=example.test", "whois.test", 43).and_return(referral)
|
42
|
-
expect(server.query_handler).
|
42
|
+
expect(server.query_handler).not_to receive(:call)
|
43
43
|
|
44
44
|
record = server.lookup("example.test")
|
45
45
|
expect(record.parts.size).to eq(1)
|
@@ -50,7 +50,7 @@ describe Whois::Server::Adapters::Verisign do
|
|
50
50
|
it "ignores referral (gracefully) if missing" do
|
51
51
|
referral = File.read(fixture("referrals/crsnic.com_referral_missing.txt"))
|
52
52
|
expect(server.query_handler).to receive(:call).with("=example.test", "whois.test", 43).and_return(referral)
|
53
|
-
expect(server.query_handler).
|
53
|
+
expect(server.query_handler).not_to receive(:call)
|
54
54
|
|
55
55
|
record = server.lookup("example.test")
|
56
56
|
expect(record.parts.size).to eq(1)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whois
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simone Carletti
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -65,6 +65,10 @@ extra_rdoc_files:
|
|
65
65
|
- ".yardopts"
|
66
66
|
files:
|
67
67
|
- ".github/FUNDING.yml"
|
68
|
+
- ".github/dependabot.yml"
|
69
|
+
- ".github/workflows/codeql-analysis.yml"
|
70
|
+
- ".github/workflows/release.yml"
|
71
|
+
- ".github/workflows/tests.yml"
|
68
72
|
- ".gitignore"
|
69
73
|
- ".rspec"
|
70
74
|
- ".rubocop.yml"
|
@@ -72,7 +76,6 @@ files:
|
|
72
76
|
- ".rubocop_todo.yml"
|
73
77
|
- ".simplecov"
|
74
78
|
- ".tool-versions"
|
75
|
-
- ".travis.yml"
|
76
79
|
- ".yardopts"
|
77
80
|
- 4.0-Upgrade.md
|
78
81
|
- CHANGELOG.md
|
@@ -82,7 +85,6 @@ files:
|
|
82
85
|
- README.md
|
83
86
|
- Rakefile
|
84
87
|
- bin/console
|
85
|
-
- bin/setup
|
86
88
|
- bin/whoisrb
|
87
89
|
- data/asn16.json
|
88
90
|
- data/asn32.json
|
@@ -149,7 +151,7 @@ homepage: https://whoisrb.org/
|
|
149
151
|
licenses:
|
150
152
|
- MIT
|
151
153
|
metadata: {}
|
152
|
-
post_install_message:
|
154
|
+
post_install_message:
|
153
155
|
rdoc_options: []
|
154
156
|
require_paths:
|
155
157
|
- lib
|
@@ -164,39 +166,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
166
|
- !ruby/object:Gem::Version
|
165
167
|
version: '0'
|
166
168
|
requirements: []
|
167
|
-
rubygems_version: 3.
|
168
|
-
signing_key:
|
169
|
+
rubygems_version: 3.3.7
|
170
|
+
signing_key:
|
169
171
|
specification_version: 4
|
170
172
|
summary: An intelligent pure Ruby WHOIS client and parser.
|
171
|
-
test_files:
|
172
|
-
- spec/fixtures/referrals/afilias.bz.txt
|
173
|
-
- spec/fixtures/referrals/arin_referral_apnic.txt
|
174
|
-
- spec/fixtures/referrals/arin_referral_missing.txt
|
175
|
-
- spec/fixtures/referrals/arin_referral_ripe.txt
|
176
|
-
- spec/fixtures/referrals/arin_referral_rwhois.txt
|
177
|
-
- spec/fixtures/referrals/arin_referral_servernap.txt
|
178
|
-
- spec/fixtures/referrals/arin_referral_whois.txt
|
179
|
-
- spec/fixtures/referrals/crsnic.com.txt
|
180
|
-
- spec/fixtures/referrals/crsnic.com_referral.txt
|
181
|
-
- spec/fixtures/referrals/crsnic.com_referral_missing.txt
|
182
|
-
- spec/integration/whois_spec.rb
|
183
|
-
- spec/spec_helper.rb
|
184
|
-
- spec/support/helpers/connectivity_helper.rb
|
185
|
-
- spec/support/helpers/spec_helper.rb
|
186
|
-
- spec/whois/client_spec.rb
|
187
|
-
- spec/whois/record/part_spec.rb
|
188
|
-
- spec/whois/record_spec.rb
|
189
|
-
- spec/whois/server/adapters/afilias_spec.rb
|
190
|
-
- spec/whois/server/adapters/arin_spec.rb
|
191
|
-
- spec/whois/server/adapters/arpa_spec.rb
|
192
|
-
- spec/whois/server/adapters/base_spec.rb
|
193
|
-
- spec/whois/server/adapters/formatted_spec.rb
|
194
|
-
- spec/whois/server/adapters/none_spec.rb
|
195
|
-
- spec/whois/server/adapters/not_implemented_spec.rb
|
196
|
-
- spec/whois/server/adapters/standard_spec.rb
|
197
|
-
- spec/whois/server/adapters/verisign_spec.rb
|
198
|
-
- spec/whois/server/adapters/web_spec.rb
|
199
|
-
- spec/whois/server/socket_handler_spec.rb
|
200
|
-
- spec/whois/server_spec.rb
|
201
|
-
- spec/whois/web_interface_error_spec.rb
|
202
|
-
- spec/whois/whois_spec.rb
|
173
|
+
test_files: []
|
data/.travis.yml
DELETED