whois 3.0.0 → 3.1.0
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.
- data/CHANGELOG.md +31 -0
- data/data/ipv4.json +23 -12
- data/data/tld.json +5 -4
- data/lib/whois/client.rb +0 -6
- data/lib/whois/record.rb +1 -1
- data/lib/whois/record/parser/whois.bn.rb +70 -0
- data/lib/whois/record/parser/whois.dns.be.rb +22 -4
- data/lib/whois/record/parser/whois.dns.pl.rb +1 -1
- data/lib/whois/record/parser/whois.dotpostregistry.net.rb +27 -0
- data/lib/whois/record/parser/whois.registry.net.za.rb +30 -19
- data/lib/whois/record/parser/whois.tld.sy.rb +30 -0
- data/lib/whois/record/parser/whois.ua.rb +1 -1
- data/lib/whois/record/scanners/whois.registry.net.za.rb +14 -13
- data/lib/whois/record/super_struct.rb +1 -2
- data/lib/whois/server.rb +2 -0
- data/lib/whois/server/adapters/arin.rb +52 -0
- data/lib/whois/server/socket_handler.rb +1 -3
- data/lib/whois/version.rb +1 -1
- data/whois.gemspec +2 -2
- metadata +6 -2
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## Release 3.1.0
|
|
5
|
+
|
|
6
|
+
- SERVER: Added .POST (GH-192) TLD definition.
|
|
7
|
+
|
|
8
|
+
- SERVER: Updated .BN (GH-214), .SY (GH-196) TLD definitions.
|
|
9
|
+
|
|
10
|
+
- NEW: Added #domain and #registrar to whois.dns.be parser (GH-216). [Thanks @chuckadams]
|
|
11
|
+
|
|
12
|
+
- NEW: Added full whois.dotpostregistry.net parser (GH-192).
|
|
13
|
+
|
|
14
|
+
- NEW: Added full whois.tld.sy parser (GH-196).
|
|
15
|
+
|
|
16
|
+
- NEW: Added whois.bn parser (GH-214).
|
|
17
|
+
|
|
18
|
+
- CHANGED: Rescue all SystemCallError instead of a few Errno errors (GH-212). [Thanks @mat813]
|
|
19
|
+
|
|
20
|
+
- CHANGED: Removed deprecated method Whois::Client#query.
|
|
21
|
+
|
|
22
|
+
- CHANGED: Removed deprecated initialization of SuperStruct via Array.
|
|
23
|
+
|
|
24
|
+
- FIXED: whois.ua should support status `ok`.
|
|
25
|
+
|
|
26
|
+
- FIXED: whois.registry.net.za crashes when the registrant doesn't have a name.
|
|
27
|
+
|
|
28
|
+
- FIXED: whois.dns.pl crashes when expiration date is not defined.
|
|
29
|
+
|
|
30
|
+
- FIXED: Handle ReferralServer directive in ARIN whois queries (GH-204, GH-37). [Thanks @linrock]
|
|
31
|
+
|
|
32
|
+
- FIXED: Record#technical_contact raised a NoMethodError (GH-217). [Thanks @yspro]
|
|
33
|
+
|
|
34
|
+
|
|
4
35
|
## Release 3.0.0
|
|
5
36
|
|
|
6
37
|
- SERVER: Added .AX TLD definition.
|
data/data/ipv4.json
CHANGED
|
@@ -145,7 +145,8 @@
|
|
|
145
145
|
"host": "whois.apnic.net"
|
|
146
146
|
},
|
|
147
147
|
"0.0.0.0/1": {
|
|
148
|
-
"host": "whois.arin.net"
|
|
148
|
+
"host": "whois.arin.net",
|
|
149
|
+
"adapter": "arin"
|
|
149
150
|
},
|
|
150
151
|
"133.0.0.0/8": {
|
|
151
152
|
"host": "whois.nic.ad.jp"
|
|
@@ -163,7 +164,8 @@
|
|
|
163
164
|
"host": "whois.ripe.net"
|
|
164
165
|
},
|
|
165
166
|
"141.86.0.0/16": {
|
|
166
|
-
"host": "whois.arin.net"
|
|
167
|
+
"host": "whois.arin.net",
|
|
168
|
+
"adapter": "arin"
|
|
167
169
|
},
|
|
168
170
|
"141.64.0.0/11": {
|
|
169
171
|
"host": "whois.ripe.net"
|
|
@@ -364,16 +366,19 @@
|
|
|
364
366
|
"host": "whois.lacnic.net"
|
|
365
367
|
},
|
|
366
368
|
"128.0.0.0/2": {
|
|
367
|
-
"host": "whois.arin.net"
|
|
369
|
+
"host": "whois.arin.net",
|
|
370
|
+
"adapter": "arin"
|
|
368
371
|
},
|
|
369
372
|
"192.71.0.0/16": {
|
|
370
373
|
"host": "whois.ripe.net"
|
|
371
374
|
},
|
|
372
375
|
"192.72.253.0/24": {
|
|
373
|
-
"host": "whois.arin.net"
|
|
376
|
+
"host": "whois.arin.net",
|
|
377
|
+
"adapter": "arin"
|
|
374
378
|
},
|
|
375
379
|
"192.72.254.0/24": {
|
|
376
|
-
"host": "whois.arin.net"
|
|
380
|
+
"host": "whois.arin.net",
|
|
381
|
+
"adapter": "arin"
|
|
377
382
|
},
|
|
378
383
|
"192.72.0.0/16": {
|
|
379
384
|
"host": "whois.apnic.net"
|
|
@@ -397,7 +402,8 @@
|
|
|
397
402
|
"host": "whois.ripe.net"
|
|
398
403
|
},
|
|
399
404
|
"192.0.0.0/8": {
|
|
400
|
-
"host": "whois.arin.net"
|
|
405
|
+
"host": "whois.arin.net",
|
|
406
|
+
"adapter": "arin"
|
|
401
407
|
},
|
|
402
408
|
"193.0.0.0/8": {
|
|
403
409
|
"host": "whois.ripe.net"
|
|
@@ -409,7 +415,8 @@
|
|
|
409
415
|
"host": "whois.afrinic.net"
|
|
410
416
|
},
|
|
411
417
|
"198.0.0.0/7": {
|
|
412
|
-
"host": "whois.arin.net"
|
|
418
|
+
"host": "whois.arin.net",
|
|
419
|
+
"adapter": "arin"
|
|
413
420
|
},
|
|
414
421
|
"200.17.0.0/16": {
|
|
415
422
|
"host": "whois.nic.br"
|
|
@@ -505,10 +512,12 @@
|
|
|
505
512
|
"host": "rwhois.gin.ntt.net"
|
|
506
513
|
},
|
|
507
514
|
"204.0.0.0/6": {
|
|
508
|
-
"host": "whois.arin.net"
|
|
515
|
+
"host": "whois.arin.net",
|
|
516
|
+
"adapter": "arin"
|
|
509
517
|
},
|
|
510
518
|
"208.0.0.0/7": {
|
|
511
|
-
"host": "whois.arin.net"
|
|
519
|
+
"host": "whois.arin.net",
|
|
520
|
+
"adapter": "arin"
|
|
512
521
|
},
|
|
513
522
|
"209.94.192.0/19": {
|
|
514
523
|
"host": "whois.lacnic.net"
|
|
@@ -634,10 +643,12 @@
|
|
|
634
643
|
"host": "whois.ripe.net"
|
|
635
644
|
},
|
|
636
645
|
"214.0.0.0/7": {
|
|
637
|
-
"host": "whois.arin.net"
|
|
646
|
+
"host": "whois.arin.net",
|
|
647
|
+
"adapter": "arin"
|
|
638
648
|
},
|
|
639
649
|
"216.0.0.0/8": {
|
|
640
|
-
"host": "whois.arin.net"
|
|
650
|
+
"host": "whois.arin.net",
|
|
651
|
+
"adapter": "arin"
|
|
641
652
|
},
|
|
642
653
|
"217.0.0.0/8": {
|
|
643
654
|
"host": "whois.ripe.net"
|
|
@@ -720,4 +731,4 @@
|
|
|
720
731
|
"220.0.0.0/6": {
|
|
721
732
|
"host": "whois.apnic.net"
|
|
722
733
|
}
|
|
723
|
-
}
|
|
734
|
+
}
|
data/data/tld.json
CHANGED
|
@@ -269,8 +269,7 @@
|
|
|
269
269
|
"url": "http://207.228.133.14/cgi-bin/lansaweb?procfun+BMWHO+BMWHO2+WHO"
|
|
270
270
|
},
|
|
271
271
|
".bn": {
|
|
272
|
-
"host":
|
|
273
|
-
"adapter": "none"
|
|
272
|
+
"host": "whois.bn"
|
|
274
273
|
},
|
|
275
274
|
".bo": {
|
|
276
275
|
"host": "whois.nic.bo"
|
|
@@ -879,6 +878,9 @@
|
|
|
879
878
|
"adapter": "web",
|
|
880
879
|
"url": "http://www.pitcairn.pn/PnRegistry/"
|
|
881
880
|
},
|
|
881
|
+
".post": {
|
|
882
|
+
"host": "whois.dotpostregistry.net"
|
|
883
|
+
},
|
|
882
884
|
".pr": {
|
|
883
885
|
"host": "whois.nic.pr"
|
|
884
886
|
},
|
|
@@ -982,8 +984,7 @@
|
|
|
982
984
|
"host": "whois.sx"
|
|
983
985
|
},
|
|
984
986
|
".sy": {
|
|
985
|
-
"host":
|
|
986
|
-
"adapter": "none"
|
|
987
|
+
"host": "whois.tld.sy"
|
|
987
988
|
},
|
|
988
989
|
".sz": {
|
|
989
990
|
"host": null,
|
data/lib/whois/client.rb
CHANGED
data/lib/whois/record.rb
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2013 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require 'whois/record/parser/base'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Record
|
|
15
|
+
class Parser
|
|
16
|
+
|
|
17
|
+
# Parser for the whois.bn server.
|
|
18
|
+
#
|
|
19
|
+
# @note This parser is just a stub and provides only a few basic methods
|
|
20
|
+
# to check for domain availability and get domain status.
|
|
21
|
+
# Please consider to contribute implementing missing methods.
|
|
22
|
+
#
|
|
23
|
+
# @see Whois::Record::Parser::Example
|
|
24
|
+
# The Example parser for the list of all available methods.
|
|
25
|
+
#
|
|
26
|
+
class WhoisBn < Base
|
|
27
|
+
|
|
28
|
+
property_supported :status do
|
|
29
|
+
if available?
|
|
30
|
+
:available
|
|
31
|
+
else
|
|
32
|
+
:registered
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
property_supported :available? do
|
|
37
|
+
!!(content_for_scanner =~ /^No records matching .+ found/)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
property_supported :registered? do
|
|
41
|
+
!available?
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
property_supported :created_on do
|
|
46
|
+
if content_for_scanner =~ /Created:\s+(.+)\n/
|
|
47
|
+
Time.parse($1)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
property_supported :updated_on do
|
|
52
|
+
if content_for_scanner =~ /Last Updated:\s+(.+)\n/
|
|
53
|
+
Time.parse($1)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
property_not_supported :expires_on
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
property_supported :nameservers do
|
|
61
|
+
content_for_scanner.scan(/Name Server \d:\s+(.+)\n/).flatten.map do |name|
|
|
62
|
+
Record::Nameserver.new(:name => name)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -25,6 +25,11 @@ module Whois
|
|
|
25
25
|
#
|
|
26
26
|
class WhoisDnsBe < Base
|
|
27
27
|
|
|
28
|
+
property_supported :domain do
|
|
29
|
+
content_for_scanner.slice(/Domain:\s+(.+?)\n/, 1)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
28
33
|
property_supported :status do
|
|
29
34
|
if content_for_scanner =~ /Status:\s+(.+?)\n/
|
|
30
35
|
case $1.downcase
|
|
@@ -32,9 +37,6 @@ module Whois
|
|
|
32
37
|
when "not available" then :registered
|
|
33
38
|
when "quarantine" then :redemption
|
|
34
39
|
when "out of service" then :redemption
|
|
35
|
-
# old response
|
|
36
|
-
when "registered" then :registered
|
|
37
|
-
when "free" then :available
|
|
38
40
|
else
|
|
39
41
|
Whois.bug!(ParserError, "Unknown status `#{$1}'.")
|
|
40
42
|
end
|
|
@@ -63,6 +65,14 @@ module Whois
|
|
|
63
65
|
property_not_supported :expires_on
|
|
64
66
|
|
|
65
67
|
|
|
68
|
+
property_supported :registrar do
|
|
69
|
+
if (match = content_for_scanner.match(/Registrar:\s+Name:(.+?)\s*Website:(.+?)\n/))
|
|
70
|
+
name, url = match.to_a[1..2]
|
|
71
|
+
Record::Registrar.new(name: name.strip, url: url.strip)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
|
|
66
76
|
property_supported :nameservers do
|
|
67
77
|
if content_for_scanner =~ /Nameservers:\s((.+\n)+)\n/
|
|
68
78
|
$1.split("\n").map do |line|
|
|
@@ -80,7 +90,15 @@ module Whois
|
|
|
80
90
|
#
|
|
81
91
|
# @return [Boolean]
|
|
82
92
|
def response_throttled?
|
|
83
|
-
!!(content_for_scanner =~ /^% (Excessive querying|Maximum queries per hour reached)/)
|
|
93
|
+
!!(content_for_scanner =~ /^% (Excessive querying|Maximum queries per hour reached)/) ||
|
|
94
|
+
response_blocked?
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Checks whether the server has been blocked.
|
|
98
|
+
#
|
|
99
|
+
# @return [Boolean]
|
|
100
|
+
def response_blocked?
|
|
101
|
+
!!(content_for_scanner =~ /^-3: IP address blocked/)
|
|
84
102
|
end
|
|
85
103
|
|
|
86
104
|
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2013 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require 'whois/record/parser/base_afilias'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Record
|
|
15
|
+
class Parser
|
|
16
|
+
|
|
17
|
+
# Parser for the whois.dotpostregistry.net server.
|
|
18
|
+
#
|
|
19
|
+
# @see Whois::Record::Parser::Example
|
|
20
|
+
# The Example parser for the list of all available methods.
|
|
21
|
+
#
|
|
22
|
+
class WhoisDotpostregistryNet < BaseAfilias
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2013 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
require 'whois/record/parser/base'
|
|
2
11
|
require 'whois/record/scanners/whois.registry.net.za'
|
|
3
12
|
|
|
@@ -5,6 +14,7 @@ require 'whois/record/scanners/whois.registry.net.za'
|
|
|
5
14
|
module Whois
|
|
6
15
|
class Record
|
|
7
16
|
class Parser
|
|
17
|
+
|
|
8
18
|
# Parser for the whois.registry.za.net server.
|
|
9
19
|
#
|
|
10
20
|
# @note This parser is just a stub and provides only a few basic methods
|
|
@@ -18,19 +28,21 @@ module Whois
|
|
|
18
28
|
include Scanners::Nodable
|
|
19
29
|
|
|
20
30
|
property_supported :disclaimer do
|
|
21
|
-
node("
|
|
31
|
+
node("node:disclaimer")
|
|
22
32
|
end
|
|
23
33
|
|
|
24
34
|
|
|
25
35
|
property_supported :domain do
|
|
26
|
-
node("
|
|
36
|
+
node("node:domain")
|
|
27
37
|
end
|
|
28
38
|
|
|
29
39
|
property_not_supported :domain_id
|
|
30
40
|
|
|
31
41
|
|
|
32
42
|
property_supported :status do
|
|
33
|
-
node("
|
|
43
|
+
node("node:status") do |string|
|
|
44
|
+
string.split(", ")
|
|
45
|
+
end
|
|
34
46
|
end
|
|
35
47
|
|
|
36
48
|
property_supported :available? do
|
|
@@ -43,8 +55,8 @@ module Whois
|
|
|
43
55
|
|
|
44
56
|
|
|
45
57
|
property_supported :created_on do
|
|
46
|
-
node("
|
|
47
|
-
|
|
58
|
+
node("node:dates") do |array|
|
|
59
|
+
array[0] =~ /Registration Date:\s*(\d{4}-\d{2}-\d{2})/
|
|
48
60
|
parse_date($1)
|
|
49
61
|
end
|
|
50
62
|
end
|
|
@@ -52,22 +64,22 @@ module Whois
|
|
|
52
64
|
property_not_supported :updated_on
|
|
53
65
|
|
|
54
66
|
property_supported :expires_on do
|
|
55
|
-
node("
|
|
56
|
-
|
|
67
|
+
node("node:dates") do |array|
|
|
68
|
+
array[1] =~ /Renewal Date:\s*(\d{4}-\d{2}-\d{2})/
|
|
57
69
|
parse_date($1)
|
|
58
70
|
end
|
|
59
71
|
end
|
|
60
72
|
|
|
61
73
|
|
|
62
74
|
property_supported :registrar do
|
|
63
|
-
node("
|
|
64
|
-
|
|
75
|
+
node("node:registrar") do |string|
|
|
76
|
+
string =~ /(.+) \[ ID = (.+) \]/
|
|
65
77
|
Whois::Record::Registrar.new(:name => $1.strip, :id => $2.strip)
|
|
66
78
|
end
|
|
67
79
|
end
|
|
68
80
|
|
|
69
81
|
property_supported :registrant_contacts do
|
|
70
|
-
node("
|
|
82
|
+
node("node:registrant_details") do
|
|
71
83
|
build_registrant_contacts
|
|
72
84
|
end
|
|
73
85
|
end
|
|
@@ -78,9 +90,8 @@ module Whois
|
|
|
78
90
|
|
|
79
91
|
|
|
80
92
|
property_supported :nameservers do
|
|
81
|
-
node("
|
|
82
|
-
|
|
83
|
-
Array.wrap(nameservers).map do |nameserver|
|
|
93
|
+
node("node:nameservers") do |array|
|
|
94
|
+
Array.wrap(array).map do |nameserver|
|
|
84
95
|
Record::Nameserver.new(:name => nameserver)
|
|
85
96
|
end
|
|
86
97
|
end
|
|
@@ -96,28 +107,28 @@ module Whois
|
|
|
96
107
|
|
|
97
108
|
def build_registrant_contacts
|
|
98
109
|
Whois::Record::Contact.new(
|
|
99
|
-
{:
|
|
110
|
+
{ type: Whois::Record::Contact::TYPE_REGISTRANT}.merge(registrant_details).merge(registrant_address_details)
|
|
100
111
|
)
|
|
101
112
|
end
|
|
102
113
|
|
|
103
114
|
def registrant_details
|
|
104
|
-
|
|
105
|
-
details = { :
|
|
115
|
+
lines = node("node:registrant_details")
|
|
116
|
+
details = { name: lines.shift }
|
|
106
117
|
[:email, :phone, :fax].each do |contact_method|
|
|
107
|
-
details[contact_method] =
|
|
118
|
+
details[contact_method] = lines.shift.split(":", 2)[1].strip
|
|
108
119
|
end
|
|
109
120
|
details
|
|
110
121
|
end
|
|
111
122
|
|
|
112
123
|
def registrant_address_details
|
|
113
|
-
{ :
|
|
124
|
+
{ address: Array.wrap(node("node:registrant_address")).join("\n") }
|
|
114
125
|
end
|
|
115
126
|
|
|
116
127
|
def parse_date(date_string)
|
|
117
128
|
Time.parse(date_string) if date_string
|
|
118
129
|
end
|
|
119
|
-
|
|
120
130
|
end
|
|
131
|
+
|
|
121
132
|
end
|
|
122
133
|
end
|
|
123
134
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2013 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require 'whois/record/parser/base_cocca2'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Record
|
|
15
|
+
class Parser
|
|
16
|
+
|
|
17
|
+
# Parser for the whois.tld.sy server.
|
|
18
|
+
#
|
|
19
|
+
# @see Whois::Record::Parser::Example
|
|
20
|
+
# The Example parser for the list of all available methods.
|
|
21
|
+
#
|
|
22
|
+
class WhoisTldSy < BaseCocca2
|
|
23
|
+
|
|
24
|
+
property_not_supported :updated_on
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -17,7 +17,7 @@ module Whois
|
|
|
17
17
|
class WhoisRegistryNetZa < Base
|
|
18
18
|
self.tokenizers += [
|
|
19
19
|
:get_availability,
|
|
20
|
-
:
|
|
20
|
+
:get_domain,
|
|
21
21
|
:get_registrant_details,
|
|
22
22
|
:get_registrant_address,
|
|
23
23
|
:get_registrar_details,
|
|
@@ -34,70 +34,71 @@ module Whois
|
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
tokenizer :
|
|
37
|
+
tokenizer :get_domain do
|
|
38
38
|
if find_heading("Domain Name")
|
|
39
|
-
@ast["
|
|
39
|
+
@ast["node:domain"] = content_in_category
|
|
40
40
|
end
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
tokenizer :get_registrant_details do
|
|
44
44
|
if find_heading("Registrant")
|
|
45
|
-
@ast["
|
|
45
|
+
@ast["node:registrant_details"] = content_in_category
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
tokenizer :get_registrant_address do
|
|
50
50
|
if find_heading("Registrant's Address")
|
|
51
|
-
@ast["
|
|
51
|
+
@ast["node:registrant_address"] = content_in_category
|
|
52
52
|
end
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
tokenizer :get_registrar_details do
|
|
56
56
|
if find_heading("Registrar")
|
|
57
|
-
@ast["
|
|
57
|
+
@ast["node:registrar"] = content_in_category
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
tokenizer :get_dates do
|
|
62
62
|
if find_heading("Relevant Dates")
|
|
63
|
-
@ast["
|
|
63
|
+
@ast["node:dates"] = content_in_category
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
tokenizer :get_status do
|
|
68
68
|
if find_heading("Domain Status")
|
|
69
|
-
|
|
70
|
-
@ast["field:status"] = statuses.split(", ")
|
|
69
|
+
@ast["node:status"] = content_in_category
|
|
71
70
|
end
|
|
72
71
|
end
|
|
73
72
|
|
|
74
73
|
tokenizer :get_pending_timer_events do
|
|
75
74
|
if find_heading("Pending Timer Events")
|
|
76
|
-
@ast["
|
|
75
|
+
@ast["node:pending_timer_events"] = content_in_category
|
|
77
76
|
end
|
|
78
77
|
end
|
|
79
78
|
|
|
80
79
|
tokenizer :get_nameservers do
|
|
81
80
|
if find_heading("Name Servers")
|
|
82
|
-
@ast["
|
|
81
|
+
@ast["node:nameservers"] = content_in_category
|
|
83
82
|
end
|
|
84
83
|
end
|
|
85
84
|
|
|
86
85
|
tokenizer :get_disclaimer do
|
|
87
86
|
@input.skip_until(/\n--\n/m)
|
|
88
|
-
@ast["
|
|
87
|
+
@ast["node:disclaimer"] = @input.scan_until(/.*$/m)
|
|
89
88
|
end
|
|
90
89
|
|
|
91
90
|
private
|
|
92
91
|
|
|
93
92
|
def content_in_category
|
|
94
|
-
|
|
93
|
+
lines = _scan_lines_to_array(/ (.*)\n/)
|
|
94
|
+
lines.size == 1 ? lines.first : lines
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
def find_heading(heading_name)
|
|
98
98
|
@input.skip_until(/ #{heading_name}:\n/)
|
|
99
99
|
end
|
|
100
100
|
end
|
|
101
|
+
|
|
101
102
|
end
|
|
102
103
|
end
|
|
103
104
|
end
|
data/lib/whois/server.rb
CHANGED
|
@@ -25,6 +25,8 @@ module Whois
|
|
|
25
25
|
# WHOIS server adapters. Each adapter is a subclass of {Whois::Server::Adapters::Base},
|
|
26
26
|
# customized to handle WHOIS queries for a type or a group of servers.
|
|
27
27
|
module Adapters
|
|
28
|
+
autoload :Base, "whois/server/adapters/base"
|
|
29
|
+
autoload :Arin, "whois/server/adapters/arin"
|
|
28
30
|
autoload :Arpa, "whois/server/adapters/arpa"
|
|
29
31
|
autoload :Afilias, "whois/server/adapters/afilias"
|
|
30
32
|
autoload :Formatted, "whois/server/adapters/formatted"
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2013 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
module Whois
|
|
11
|
+
class Server
|
|
12
|
+
module Adapters
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# = Arin Adapter
|
|
16
|
+
#
|
|
17
|
+
# Provides ability to query Arin WHOIS interfaces.
|
|
18
|
+
#
|
|
19
|
+
class Arin < Base
|
|
20
|
+
|
|
21
|
+
# Executes a WHOIS query to the Arin WHOIS interface,
|
|
22
|
+
# resolving any intermediate referral,
|
|
23
|
+
# and appends the response to the client buffer.
|
|
24
|
+
#
|
|
25
|
+
# @param [String] string
|
|
26
|
+
# @return [void]
|
|
27
|
+
#
|
|
28
|
+
def request(string)
|
|
29
|
+
response = query_the_socket(string, host)
|
|
30
|
+
buffer_append response, host
|
|
31
|
+
|
|
32
|
+
if options[:referral] != false && (referral = extract_referral(response))
|
|
33
|
+
response = query_the_socket(string, referral[:host], referral[:port])
|
|
34
|
+
buffer_append(response, referral[:host])
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
def extract_referral(response)
|
|
41
|
+
return unless response =~ /ReferralServer:\s*r?whois:\/\/([\w\.]+):?(\d+)/
|
|
42
|
+
{
|
|
43
|
+
host: $1,
|
|
44
|
+
port: $2 ? $2.to_i : nil
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
data/lib/whois/version.rb
CHANGED
data/whois.gemspec
CHANGED
|
@@ -6,11 +6,11 @@ Gem::Specification.new do |s|
|
|
|
6
6
|
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
8
8
|
s.authors = ["Simone Carletti"]
|
|
9
|
-
s.date = "2013-03
|
|
9
|
+
s.date = "2013-04-03"
|
|
10
10
|
s.description = "Whois is an intelligent WHOIS client and parser written in pure Ruby. It can query registry data for IPv4, IPv6 and top level domains, parse and convert responses into easy-to-use Ruby objects."
|
|
11
11
|
s.email = ["weppos@weppos.net"]
|
|
12
12
|
s.executables = ["ruby-whois"]
|
|
13
|
-
s.files = ["LICENSE.txt", ".yardopts", "CHANGELOG.md", "README.md", "whois.gemspec", "bin/ruby-whois", "data/ipv4.json", "data/ipv6.json", "data/tld.json", "lib/whois", "lib/whois/client.rb", "lib/whois/core_ext", "lib/whois/core_ext/array", "lib/whois/core_ext/array/extract_options.rb", "lib/whois/core_ext/array/wrap.rb", "lib/whois/core_ext/class", "lib/whois/core_ext/class/attribute.rb", "lib/whois/core_ext/kernel", "lib/whois/core_ext/kernel/singleton_class.rb", "lib/whois/core_ext/module", "lib/whois/core_ext/module/remove_method.rb", "lib/whois/core_ext.rb", "lib/whois/errors.rb", "lib/whois/record", "lib/whois/record/contact.rb", "lib/whois/record/nameserver.rb", "lib/whois/record/parser", "lib/whois/record/parser/base.rb", "lib/whois/record/parser/base_afilias.rb", "lib/whois/record/parser/base_cocca.rb", "lib/whois/record/parser/base_cocca2.rb", "lib/whois/record/parser/base_shared1.rb", "lib/whois/record/parser/base_shared2.rb", "lib/whois/record/parser/base_whoisd.rb", "lib/whois/record/parser/blank.rb", "lib/whois/record/parser/example.rb", "lib/whois/record/parser/jobswhois.verisign-grs.com.rb", "lib/whois/record/parser/kero.yachay.pe.rb", "lib/whois/record/parser/NOTES.txt", "lib/whois/record/parser/whois.adamsnames.tc.rb", "lib/whois/record/parser/whois.aeda.net.ae.rb", "lib/whois/record/parser/whois.aero.rb", "lib/whois/record/parser/whois.afilias-grs.info.rb", "lib/whois/record/parser/whois.afilias.info.rb", "lib/whois/record/parser/whois.ai.rb", "lib/whois/record/parser/whois.arnes.si.rb", "lib/whois/record/parser/whois.ati.tn.rb", "lib/whois/record/parser/whois.audns.net.au.rb", "lib/whois/record/parser/whois.ax.rb", "lib/whois/record/parser/whois.biz.rb", "lib/whois/record/parser/whois.cat.rb", "lib/whois/record/parser/whois.cctld.by.rb", "lib/whois/record/parser/whois.cctld.uz.rb", "lib/whois/record/parser/whois.centralnic.com.rb", "lib/whois/record/parser/whois.cira.ca.rb", "lib/whois/record/parser/whois.cmc.iq.rb", "lib/whois/record/parser/whois.cnnic.cn.rb", "lib/whois/record/parser/whois.co.ca.rb", "lib/whois/record/parser/whois.co.pl.rb", "lib/whois/record/parser/whois.co.ug.rb", "lib/whois/record/parser/whois.crsnic.net.rb", "lib/whois/record/parser/whois.denic.de.rb", "lib/whois/record/parser/whois.dk-hostmaster.dk.rb", "lib/whois/record/parser/whois.dns.be.rb", "lib/whois/record/parser/whois.dns.hr.rb", "lib/whois/record/parser/whois.dns.lu.rb", "lib/whois/record/parser/whois.dns.pl.rb", "lib/whois/record/parser/whois.dns.pt.rb", "lib/whois/record/parser/whois.domain-registry.nl.rb", "lib/whois/record/parser/whois.domain.kg.rb", "lib/whois/record/parser/whois.domainregistry.ie.rb", "lib/whois/record/parser/whois.domainregistry.my.rb", "lib/whois/record/parser/whois.domreg.lt.rb", "lib/whois/record/parser/whois.dot.tk.rb", "lib/whois/record/parser/whois.dotmobiregistry.net.rb", "lib/whois/record/parser/whois.dreamhost.com.rb", "lib/whois/record/parser/whois.educause.edu.rb", "lib/whois/record/parser/whois.eenet.ee.rb", "lib/whois/record/parser/whois.enom.com.rb", "lib/whois/record/parser/whois.eu.org.rb", "lib/whois/record/parser/whois.eu.rb", "lib/whois/record/parser/whois.fi.rb", "lib/whois/record/parser/whois.gg.rb", "lib/whois/record/parser/whois.godaddy.com.rb", "lib/whois/record/parser/whois.gov.za.rb", "lib/whois/record/parser/whois.hkirc.hk.rb", "lib/whois/record/parser/whois.iam.net.ma.rb", "lib/whois/record/parser/whois.iana.org.rb", "lib/whois/record/parser/whois.in.ua.rb", "lib/whois/record/parser/whois.isnic.is.rb", "lib/whois/record/parser/whois.isoc.org.il.rb", "lib/whois/record/parser/whois.ja.net.rb", "lib/whois/record/parser/whois.je.rb", "lib/whois/record/parser/whois.jprs.jp.rb", "lib/whois/record/parser/whois.kenic.or.ke.rb", "lib/whois/record/parser/whois.kr.rb", "lib/whois/record/parser/whois.markmonitor.com.rb", "lib/whois/record/parser/whois.meregistry.net.rb", "lib/whois/record/parser/whois.monic.mo.rb", "lib/whois/record/parser/whois.museum.rb", "lib/whois/record/parser/whois.na-nic.com.na.rb", "lib/whois/record/parser/whois.nc.rb", "lib/whois/record/parser/whois.netcom.cm.rb", "lib/whois/record/parser/whois.networksolutions.com.rb", "lib/whois/record/parser/whois.nic-se.se.rb", "lib/whois/record/parser/whois.nic.ac.rb", "lib/whois/record/parser/whois.nic.af.rb", "lib/whois/record/parser/whois.nic.ag.rb", "lib/whois/record/parser/whois.nic.am.rb", "lib/whois/record/parser/whois.nic.as.rb", "lib/whois/record/parser/whois.nic.asia.rb", "lib/whois/record/parser/whois.nic.at.rb", "lib/whois/record/parser/whois.nic.bo.rb", "lib/whois/record/parser/whois.nic.cc.rb", "lib/whois/record/parser/whois.nic.cd.rb", "lib/whois/record/parser/whois.nic.ch.rb", "lib/whois/record/parser/whois.nic.ci.rb", "lib/whois/record/parser/whois.nic.ck.rb", "lib/whois/record/parser/whois.nic.cl.rb", "lib/whois/record/parser/whois.nic.co.rb", "lib/whois/record/parser/whois.nic.coop.rb", "lib/whois/record/parser/whois.nic.cx.rb", "lib/whois/record/parser/whois.nic.cz.rb", "lib/whois/record/parser/whois.nic.dm.rb", "lib/whois/record/parser/whois.nic.dz.rb", "lib/whois/record/parser/whois.nic.ec.rb", "lib/whois/record/parser/whois.nic.fo.rb", "lib/whois/record/parser/whois.nic.fr.rb", "lib/whois/record/parser/whois.nic.gl.rb", "lib/whois/record/parser/whois.nic.gov.rb", "lib/whois/record/parser/whois.nic.gs.rb", "lib/whois/record/parser/whois.nic.hn.rb", "lib/whois/record/parser/whois.nic.ht.rb", "lib/whois/record/parser/whois.nic.hu.rb", "lib/whois/record/parser/whois.nic.im.rb", "lib/whois/record/parser/whois.nic.io.rb", "lib/whois/record/parser/whois.nic.ir.rb", "lib/whois/record/parser/whois.nic.it.rb", "lib/whois/record/parser/whois.nic.ki.rb", "lib/whois/record/parser/whois.nic.kz.rb", "lib/whois/record/parser/whois.nic.la.rb", "lib/whois/record/parser/whois.nic.li.rb", "lib/whois/record/parser/whois.nic.lk.rb", "lib/whois/record/parser/whois.nic.lv.rb", "lib/whois/record/parser/whois.nic.ly.rb", "lib/whois/record/parser/whois.nic.md.rb", "lib/whois/record/parser/whois.nic.mg.rb", "lib/whois/record/parser/whois.nic.ms.rb", "lib/whois/record/parser/whois.nic.mu.rb", "lib/whois/record/parser/whois.nic.mx.rb", "lib/whois/record/parser/whois.nic.name.rb", "lib/whois/record/parser/whois.nic.net.nf.rb", "lib/whois/record/parser/whois.nic.net.ng.rb", "lib/whois/record/parser/whois.nic.net.sa.rb", "lib/whois/record/parser/whois.nic.net.sb.rb", "lib/whois/record/parser/whois.nic.nu.rb", "lib/whois/record/parser/whois.nic.org.uy.rb", "lib/whois/record/parser/whois.nic.pr.rb", "lib/whois/record/parser/whois.nic.priv.at.rb", "lib/whois/record/parser/whois.nic.pw.rb", "lib/whois/record/parser/whois.nic.sh.rb", "lib/whois/record/parser/whois.nic.sl.rb", "lib/whois/record/parser/whois.nic.sm.rb", "lib/whois/record/parser/whois.nic.sn.rb", "lib/whois/record/parser/whois.nic.so.rb", "lib/whois/record/parser/whois.nic.st.rb", "lib/whois/record/parser/whois.nic.tel.rb", "lib/whois/record/parser/whois.nic.tl.rb", "lib/whois/record/parser/whois.nic.tm.rb", "lib/whois/record/parser/whois.nic.tr.rb", "lib/whois/record/parser/whois.nic.travel.rb", "lib/whois/record/parser/whois.nic.tv.rb", "lib/whois/record/parser/whois.nic.uk.rb", "lib/whois/record/parser/whois.nic.us.rb", "lib/whois/record/parser/whois.nic.ve.rb", "lib/whois/record/parser/whois.nic.xxx.rb", "lib/whois/record/parser/whois.norid.no.rb", "lib/whois/record/parser/whois.org.za.rb", "lib/whois/record/parser/whois.pandi.or.id.rb", "lib/whois/record/parser/whois.pir.org.rb", "lib/whois/record/parser/whois.pnina.ps.rb", "lib/whois/record/parser/whois.register.bg.rb", "lib/whois/record/parser/whois.register.com.rb", "lib/whois/record/parser/whois.registro.br.rb", "lib/whois/record/parser/whois.registry.gy.rb", "lib/whois/record/parser/whois.registry.hm.rb", "lib/whois/record/parser/whois.registry.in.rb", "lib/whois/record/parser/whois.registry.net.za.rb", "lib/whois/record/parser/whois.registry.om.rb", "lib/whois/record/parser/whois.registry.qa.rb", "lib/whois/record/parser/whois.registrypro.pro.rb", "lib/whois/record/parser/whois.ripe.net.rb", "lib/whois/record/parser/whois.rnids.rs.rb", "lib/whois/record/parser/whois.rotld.ro.rb", "lib/whois/record/parser/whois.samoanic.ws.rb", "lib/whois/record/parser/whois.sgnic.sg.rb", "lib/whois/record/parser/whois.sk-nic.sk.rb", "lib/whois/record/parser/whois.smallregistry.net.rb", "lib/whois/record/parser/whois.srs.net.nz.rb", "lib/whois/record/parser/whois.sx.rb", "lib/whois/record/parser/whois.tcinet.ru.rb", "lib/whois/record/parser/whois.thnic.co.th.rb", "lib/whois/record/parser/whois.tld.ee.rb", "lib/whois/record/parser/whois.tonic.to.rb", "lib/whois/record/parser/whois.twnic.net.tw.rb", "lib/whois/record/parser/whois.tznic.or.tz.rb", "lib/whois/record/parser/whois.ua.rb", "lib/whois/record/parser/whois.usp.ac.fj.rb", "lib/whois/record/parser/whois.za.net.rb", "lib/whois/record/parser/whois.za.org.rb", "lib/whois/record/parser/whois1.nic.bi.rb", "lib/whois/record/parser.rb", "lib/whois/record/part.rb", "lib/whois/record/registrar.rb", "lib/whois/record/scanners", "lib/whois/record/scanners/base.rb", "lib/whois/record/scanners/base_afilias.rb", "lib/whois/record/scanners/base_shared1.rb", "lib/whois/record/scanners/base_shared2.rb", "lib/whois/record/scanners/base_whoisd.rb", "lib/whois/record/scanners/iana.rb", "lib/whois/record/scanners/nodable.rb", "lib/whois/record/scanners/verisign.rb", "lib/whois/record/scanners/whois.ati.tn.rb", "lib/whois/record/scanners/whois.audns.net.au.rb", "lib/whois/record/scanners/whois.cctld.by.rb", "lib/whois/record/scanners/whois.centralnic.com.rb", "lib/whois/record/scanners/whois.cira.ca.rb", "lib/whois/record/scanners/whois.cnnic.cn.rb", "lib/whois/record/scanners/whois.denic.de.rb", "lib/whois/record/scanners/whois.dns.hr.rb", "lib/whois/record/scanners/whois.domainregistry.ie.rb", "lib/whois/record/scanners/whois.nc.rb", "lib/whois/record/scanners/whois.nic.dm.rb", "lib/whois/record/scanners/whois.nic.hu.rb", "lib/whois/record/scanners/whois.nic.it.rb", "lib/whois/record/scanners/whois.registry.net.za.rb", "lib/whois/record/scanners/whois.rnids.rs.rb", "lib/whois/record/scanners/whois.smallregistry.net.rb", "lib/whois/record/scanners/whois.sx.rb", "lib/whois/record/super_struct.rb", "lib/whois/record.rb", "lib/whois/server", "lib/whois/server/adapters", "lib/whois/server/adapters/afilias.rb", "lib/whois/server/adapters/arpa.rb", "lib/whois/server/adapters/base.rb", "lib/whois/server/adapters/formatted.rb", "lib/whois/server/adapters/none.rb", "lib/whois/server/adapters/not_implemented.rb", "lib/whois/server/adapters/standard.rb", "lib/whois/server/adapters/verisign.rb", "lib/whois/server/adapters/web.rb", "lib/whois/server/socket_handler.rb", "lib/whois/server.rb", "lib/whois/version.rb", "lib/whois.rb"]
|
|
13
|
+
s.files = ["LICENSE.txt", ".yardopts", "CHANGELOG.md", "README.md", "whois.gemspec", "bin/ruby-whois", "data/ipv4.json", "data/ipv6.json", "data/tld.json", "lib/whois", "lib/whois/client.rb", "lib/whois/core_ext", "lib/whois/core_ext/array", "lib/whois/core_ext/array/extract_options.rb", "lib/whois/core_ext/array/wrap.rb", "lib/whois/core_ext/class", "lib/whois/core_ext/class/attribute.rb", "lib/whois/core_ext/kernel", "lib/whois/core_ext/kernel/singleton_class.rb", "lib/whois/core_ext/module", "lib/whois/core_ext/module/remove_method.rb", "lib/whois/core_ext.rb", "lib/whois/errors.rb", "lib/whois/record", "lib/whois/record/contact.rb", "lib/whois/record/nameserver.rb", "lib/whois/record/parser", "lib/whois/record/parser/base.rb", "lib/whois/record/parser/base_afilias.rb", "lib/whois/record/parser/base_cocca.rb", "lib/whois/record/parser/base_cocca2.rb", "lib/whois/record/parser/base_shared1.rb", "lib/whois/record/parser/base_shared2.rb", "lib/whois/record/parser/base_whoisd.rb", "lib/whois/record/parser/blank.rb", "lib/whois/record/parser/example.rb", "lib/whois/record/parser/jobswhois.verisign-grs.com.rb", "lib/whois/record/parser/kero.yachay.pe.rb", "lib/whois/record/parser/NOTES.txt", "lib/whois/record/parser/whois.adamsnames.tc.rb", "lib/whois/record/parser/whois.aeda.net.ae.rb", "lib/whois/record/parser/whois.aero.rb", "lib/whois/record/parser/whois.afilias-grs.info.rb", "lib/whois/record/parser/whois.afilias.info.rb", "lib/whois/record/parser/whois.ai.rb", "lib/whois/record/parser/whois.arnes.si.rb", "lib/whois/record/parser/whois.ati.tn.rb", "lib/whois/record/parser/whois.audns.net.au.rb", "lib/whois/record/parser/whois.ax.rb", "lib/whois/record/parser/whois.biz.rb", "lib/whois/record/parser/whois.bn.rb", "lib/whois/record/parser/whois.cat.rb", "lib/whois/record/parser/whois.cctld.by.rb", "lib/whois/record/parser/whois.cctld.uz.rb", "lib/whois/record/parser/whois.centralnic.com.rb", "lib/whois/record/parser/whois.cira.ca.rb", "lib/whois/record/parser/whois.cmc.iq.rb", "lib/whois/record/parser/whois.cnnic.cn.rb", "lib/whois/record/parser/whois.co.ca.rb", "lib/whois/record/parser/whois.co.pl.rb", "lib/whois/record/parser/whois.co.ug.rb", "lib/whois/record/parser/whois.crsnic.net.rb", "lib/whois/record/parser/whois.denic.de.rb", "lib/whois/record/parser/whois.dk-hostmaster.dk.rb", "lib/whois/record/parser/whois.dns.be.rb", "lib/whois/record/parser/whois.dns.hr.rb", "lib/whois/record/parser/whois.dns.lu.rb", "lib/whois/record/parser/whois.dns.pl.rb", "lib/whois/record/parser/whois.dns.pt.rb", "lib/whois/record/parser/whois.domain-registry.nl.rb", "lib/whois/record/parser/whois.domain.kg.rb", "lib/whois/record/parser/whois.domainregistry.ie.rb", "lib/whois/record/parser/whois.domainregistry.my.rb", "lib/whois/record/parser/whois.domreg.lt.rb", "lib/whois/record/parser/whois.dot.tk.rb", "lib/whois/record/parser/whois.dotmobiregistry.net.rb", "lib/whois/record/parser/whois.dotpostregistry.net.rb", "lib/whois/record/parser/whois.dreamhost.com.rb", "lib/whois/record/parser/whois.educause.edu.rb", "lib/whois/record/parser/whois.eenet.ee.rb", "lib/whois/record/parser/whois.enom.com.rb", "lib/whois/record/parser/whois.eu.org.rb", "lib/whois/record/parser/whois.eu.rb", "lib/whois/record/parser/whois.fi.rb", "lib/whois/record/parser/whois.gg.rb", "lib/whois/record/parser/whois.godaddy.com.rb", "lib/whois/record/parser/whois.gov.za.rb", "lib/whois/record/parser/whois.hkirc.hk.rb", "lib/whois/record/parser/whois.iam.net.ma.rb", "lib/whois/record/parser/whois.iana.org.rb", "lib/whois/record/parser/whois.in.ua.rb", "lib/whois/record/parser/whois.isnic.is.rb", "lib/whois/record/parser/whois.isoc.org.il.rb", "lib/whois/record/parser/whois.ja.net.rb", "lib/whois/record/parser/whois.je.rb", "lib/whois/record/parser/whois.jprs.jp.rb", "lib/whois/record/parser/whois.kenic.or.ke.rb", "lib/whois/record/parser/whois.kr.rb", "lib/whois/record/parser/whois.markmonitor.com.rb", "lib/whois/record/parser/whois.meregistry.net.rb", "lib/whois/record/parser/whois.monic.mo.rb", "lib/whois/record/parser/whois.museum.rb", "lib/whois/record/parser/whois.na-nic.com.na.rb", "lib/whois/record/parser/whois.nc.rb", "lib/whois/record/parser/whois.netcom.cm.rb", "lib/whois/record/parser/whois.networksolutions.com.rb", "lib/whois/record/parser/whois.nic-se.se.rb", "lib/whois/record/parser/whois.nic.ac.rb", "lib/whois/record/parser/whois.nic.af.rb", "lib/whois/record/parser/whois.nic.ag.rb", "lib/whois/record/parser/whois.nic.am.rb", "lib/whois/record/parser/whois.nic.as.rb", "lib/whois/record/parser/whois.nic.asia.rb", "lib/whois/record/parser/whois.nic.at.rb", "lib/whois/record/parser/whois.nic.bo.rb", "lib/whois/record/parser/whois.nic.cc.rb", "lib/whois/record/parser/whois.nic.cd.rb", "lib/whois/record/parser/whois.nic.ch.rb", "lib/whois/record/parser/whois.nic.ci.rb", "lib/whois/record/parser/whois.nic.ck.rb", "lib/whois/record/parser/whois.nic.cl.rb", "lib/whois/record/parser/whois.nic.co.rb", "lib/whois/record/parser/whois.nic.coop.rb", "lib/whois/record/parser/whois.nic.cx.rb", "lib/whois/record/parser/whois.nic.cz.rb", "lib/whois/record/parser/whois.nic.dm.rb", "lib/whois/record/parser/whois.nic.dz.rb", "lib/whois/record/parser/whois.nic.ec.rb", "lib/whois/record/parser/whois.nic.fo.rb", "lib/whois/record/parser/whois.nic.fr.rb", "lib/whois/record/parser/whois.nic.gl.rb", "lib/whois/record/parser/whois.nic.gov.rb", "lib/whois/record/parser/whois.nic.gs.rb", "lib/whois/record/parser/whois.nic.hn.rb", "lib/whois/record/parser/whois.nic.ht.rb", "lib/whois/record/parser/whois.nic.hu.rb", "lib/whois/record/parser/whois.nic.im.rb", "lib/whois/record/parser/whois.nic.io.rb", "lib/whois/record/parser/whois.nic.ir.rb", "lib/whois/record/parser/whois.nic.it.rb", "lib/whois/record/parser/whois.nic.ki.rb", "lib/whois/record/parser/whois.nic.kz.rb", "lib/whois/record/parser/whois.nic.la.rb", "lib/whois/record/parser/whois.nic.li.rb", "lib/whois/record/parser/whois.nic.lk.rb", "lib/whois/record/parser/whois.nic.lv.rb", "lib/whois/record/parser/whois.nic.ly.rb", "lib/whois/record/parser/whois.nic.md.rb", "lib/whois/record/parser/whois.nic.mg.rb", "lib/whois/record/parser/whois.nic.ms.rb", "lib/whois/record/parser/whois.nic.mu.rb", "lib/whois/record/parser/whois.nic.mx.rb", "lib/whois/record/parser/whois.nic.name.rb", "lib/whois/record/parser/whois.nic.net.nf.rb", "lib/whois/record/parser/whois.nic.net.ng.rb", "lib/whois/record/parser/whois.nic.net.sa.rb", "lib/whois/record/parser/whois.nic.net.sb.rb", "lib/whois/record/parser/whois.nic.nu.rb", "lib/whois/record/parser/whois.nic.org.uy.rb", "lib/whois/record/parser/whois.nic.pr.rb", "lib/whois/record/parser/whois.nic.priv.at.rb", "lib/whois/record/parser/whois.nic.pw.rb", "lib/whois/record/parser/whois.nic.sh.rb", "lib/whois/record/parser/whois.nic.sl.rb", "lib/whois/record/parser/whois.nic.sm.rb", "lib/whois/record/parser/whois.nic.sn.rb", "lib/whois/record/parser/whois.nic.so.rb", "lib/whois/record/parser/whois.nic.st.rb", "lib/whois/record/parser/whois.nic.tel.rb", "lib/whois/record/parser/whois.nic.tl.rb", "lib/whois/record/parser/whois.nic.tm.rb", "lib/whois/record/parser/whois.nic.tr.rb", "lib/whois/record/parser/whois.nic.travel.rb", "lib/whois/record/parser/whois.nic.tv.rb", "lib/whois/record/parser/whois.nic.uk.rb", "lib/whois/record/parser/whois.nic.us.rb", "lib/whois/record/parser/whois.nic.ve.rb", "lib/whois/record/parser/whois.nic.xxx.rb", "lib/whois/record/parser/whois.norid.no.rb", "lib/whois/record/parser/whois.org.za.rb", "lib/whois/record/parser/whois.pandi.or.id.rb", "lib/whois/record/parser/whois.pir.org.rb", "lib/whois/record/parser/whois.pnina.ps.rb", "lib/whois/record/parser/whois.register.bg.rb", "lib/whois/record/parser/whois.register.com.rb", "lib/whois/record/parser/whois.registro.br.rb", "lib/whois/record/parser/whois.registry.gy.rb", "lib/whois/record/parser/whois.registry.hm.rb", "lib/whois/record/parser/whois.registry.in.rb", "lib/whois/record/parser/whois.registry.net.za.rb", "lib/whois/record/parser/whois.registry.om.rb", "lib/whois/record/parser/whois.registry.qa.rb", "lib/whois/record/parser/whois.registrypro.pro.rb", "lib/whois/record/parser/whois.ripe.net.rb", "lib/whois/record/parser/whois.rnids.rs.rb", "lib/whois/record/parser/whois.rotld.ro.rb", "lib/whois/record/parser/whois.samoanic.ws.rb", "lib/whois/record/parser/whois.sgnic.sg.rb", "lib/whois/record/parser/whois.sk-nic.sk.rb", "lib/whois/record/parser/whois.smallregistry.net.rb", "lib/whois/record/parser/whois.srs.net.nz.rb", "lib/whois/record/parser/whois.sx.rb", "lib/whois/record/parser/whois.tcinet.ru.rb", "lib/whois/record/parser/whois.thnic.co.th.rb", "lib/whois/record/parser/whois.tld.ee.rb", "lib/whois/record/parser/whois.tld.sy.rb", "lib/whois/record/parser/whois.tonic.to.rb", "lib/whois/record/parser/whois.twnic.net.tw.rb", "lib/whois/record/parser/whois.tznic.or.tz.rb", "lib/whois/record/parser/whois.ua.rb", "lib/whois/record/parser/whois.usp.ac.fj.rb", "lib/whois/record/parser/whois.za.net.rb", "lib/whois/record/parser/whois.za.org.rb", "lib/whois/record/parser/whois1.nic.bi.rb", "lib/whois/record/parser.rb", "lib/whois/record/part.rb", "lib/whois/record/registrar.rb", "lib/whois/record/scanners", "lib/whois/record/scanners/base.rb", "lib/whois/record/scanners/base_afilias.rb", "lib/whois/record/scanners/base_shared1.rb", "lib/whois/record/scanners/base_shared2.rb", "lib/whois/record/scanners/base_whoisd.rb", "lib/whois/record/scanners/iana.rb", "lib/whois/record/scanners/nodable.rb", "lib/whois/record/scanners/verisign.rb", "lib/whois/record/scanners/whois.ati.tn.rb", "lib/whois/record/scanners/whois.audns.net.au.rb", "lib/whois/record/scanners/whois.cctld.by.rb", "lib/whois/record/scanners/whois.centralnic.com.rb", "lib/whois/record/scanners/whois.cira.ca.rb", "lib/whois/record/scanners/whois.cnnic.cn.rb", "lib/whois/record/scanners/whois.denic.de.rb", "lib/whois/record/scanners/whois.dns.hr.rb", "lib/whois/record/scanners/whois.domainregistry.ie.rb", "lib/whois/record/scanners/whois.nc.rb", "lib/whois/record/scanners/whois.nic.dm.rb", "lib/whois/record/scanners/whois.nic.hu.rb", "lib/whois/record/scanners/whois.nic.it.rb", "lib/whois/record/scanners/whois.registry.net.za.rb", "lib/whois/record/scanners/whois.rnids.rs.rb", "lib/whois/record/scanners/whois.smallregistry.net.rb", "lib/whois/record/scanners/whois.sx.rb", "lib/whois/record/super_struct.rb", "lib/whois/record.rb", "lib/whois/server", "lib/whois/server/adapters", "lib/whois/server/adapters/afilias.rb", "lib/whois/server/adapters/arin.rb", "lib/whois/server/adapters/arpa.rb", "lib/whois/server/adapters/base.rb", "lib/whois/server/adapters/formatted.rb", "lib/whois/server/adapters/none.rb", "lib/whois/server/adapters/not_implemented.rb", "lib/whois/server/adapters/standard.rb", "lib/whois/server/adapters/verisign.rb", "lib/whois/server/adapters/web.rb", "lib/whois/server/socket_handler.rb", "lib/whois/server.rb", "lib/whois/version.rb", "lib/whois.rb"]
|
|
14
14
|
s.homepage = "http://www.ruby-whois.org/"
|
|
15
15
|
s.post_install_message = "********************************************************************************\n\n Thank you for installing the whois gem!\n\n If you like this gem, please support the project.\n http://pledgie.com/campaigns/11383\n\n Does your project or organization use this gem? Add it to the apps wiki.\n https://github.com/weppos/whois/wiki/apps\n\n Are you looking for a quick and convenient way to perform WHOIS queries?\n Check out RoboWhois WHOIS API.\n https://www.robowhois.com/\n\n********************************************************************************\n"
|
|
16
16
|
s.require_paths = ["lib"]
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: whois
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.1.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-03
|
|
12
|
+
date: 2013-04-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rake
|
|
@@ -127,6 +127,7 @@ files:
|
|
|
127
127
|
- lib/whois/record/parser/whois.audns.net.au.rb
|
|
128
128
|
- lib/whois/record/parser/whois.ax.rb
|
|
129
129
|
- lib/whois/record/parser/whois.biz.rb
|
|
130
|
+
- lib/whois/record/parser/whois.bn.rb
|
|
130
131
|
- lib/whois/record/parser/whois.cat.rb
|
|
131
132
|
- lib/whois/record/parser/whois.cctld.by.rb
|
|
132
133
|
- lib/whois/record/parser/whois.cctld.uz.rb
|
|
@@ -152,6 +153,7 @@ files:
|
|
|
152
153
|
- lib/whois/record/parser/whois.domreg.lt.rb
|
|
153
154
|
- lib/whois/record/parser/whois.dot.tk.rb
|
|
154
155
|
- lib/whois/record/parser/whois.dotmobiregistry.net.rb
|
|
156
|
+
- lib/whois/record/parser/whois.dotpostregistry.net.rb
|
|
155
157
|
- lib/whois/record/parser/whois.dreamhost.com.rb
|
|
156
158
|
- lib/whois/record/parser/whois.educause.edu.rb
|
|
157
159
|
- lib/whois/record/parser/whois.eenet.ee.rb
|
|
@@ -280,6 +282,7 @@ files:
|
|
|
280
282
|
- lib/whois/record/parser/whois.tcinet.ru.rb
|
|
281
283
|
- lib/whois/record/parser/whois.thnic.co.th.rb
|
|
282
284
|
- lib/whois/record/parser/whois.tld.ee.rb
|
|
285
|
+
- lib/whois/record/parser/whois.tld.sy.rb
|
|
283
286
|
- lib/whois/record/parser/whois.tonic.to.rb
|
|
284
287
|
- lib/whois/record/parser/whois.twnic.net.tw.rb
|
|
285
288
|
- lib/whois/record/parser/whois.tznic.or.tz.rb
|
|
@@ -319,6 +322,7 @@ files:
|
|
|
319
322
|
- lib/whois/record/super_struct.rb
|
|
320
323
|
- lib/whois/record.rb
|
|
321
324
|
- lib/whois/server/adapters/afilias.rb
|
|
325
|
+
- lib/whois/server/adapters/arin.rb
|
|
322
326
|
- lib/whois/server/adapters/arpa.rb
|
|
323
327
|
- lib/whois/server/adapters/base.rb
|
|
324
328
|
- lib/whois/server/adapters/formatted.rb
|