whois 1.0.12 → 1.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.rdoc +16 -1
- data/Manifest +24 -4
- data/lib/whois.rb +5 -5
- data/lib/whois/answer.rb +6 -2
- data/lib/whois/answer/contact.rb +18 -17
- data/lib/whois/answer/parser.rb +16 -1
- data/lib/whois/answer/parser/base.rb +40 -4
- data/lib/whois/answer/parser/whois.ausregistry.net.au.rb +71 -0
- data/lib/whois/answer/parser/whois.denic.de.rb +6 -6
- data/lib/whois/answer/parser/whois.nic.ac.rb +3 -3
- data/lib/whois/answer/parser/whois.nic.am.rb +83 -0
- data/lib/whois/answer/parser/whois.nic.as.rb +73 -0
- data/lib/whois/answer/parser/whois.nic.hu.rb +7 -7
- data/lib/whois/answer/parser/whois.nic.it.rb +6 -6
- data/lib/whois/answer/parser/whois.nic.st.rb +81 -0
- data/lib/whois/answer/parser/whois.publicinterestregistry.net.rb +3 -3
- data/lib/whois/version.rb +2 -2
- data/test/answer/contact_test.rb +14 -0
- data/test/answer/parser/base_test.rb +18 -0
- data/test/answer/parser/whois.ausregistry.net.au_test.rb +70 -0
- data/test/answer/parser/whois.denic.de_test.rb +65 -44
- data/test/answer/parser/whois.eu_test.rb +1 -1
- data/test/answer/parser/whois.nic-se.se_test.rb +1 -1
- data/test/answer/parser/whois.nic.ac_test.rb +13 -13
- data/test/answer/parser/whois.nic.am_test.rb +84 -0
- data/test/answer/parser/whois.nic.as_test.rb +63 -0
- data/test/answer/parser/whois.nic.hu_test.rb +45 -35
- data/test/answer/parser/whois.nic.it_test.rb +92 -65
- data/test/answer/parser/whois.nic.st_test.rb +77 -0
- data/test/answer/parser/whois.publicinterestregistry.net_test.rb +26 -20
- data/test/answer/parser_test.rb +45 -0
- data/test/answer_test.rb +7 -0
- data/test/list_tld +4 -4
- data/test/testcases/responses/whois.ausregistry.net.au/available.txt +1 -0
- data/test/testcases/responses/whois.ausregistry.net.au/registered.txt +23 -0
- data/test/testcases/responses/whois.denic.de/{nameservers_with_ip.txt → property_nameservers_with_ip.txt} +0 -0
- data/test/testcases/responses/whois.denic.de/property_technical_contact.txt +70 -0
- data/test/testcases/responses/whois.eu/{nameservers_with_ip.txt → property_nameservers_with_ip.txt} +0 -0
- data/test/testcases/responses/whois.nic-se.se/{nameservers_with_ip.txt → property_nameservers_with_ip.txt} +0 -0
- data/test/testcases/responses/whois.nic.am/available.txt +3 -0
- data/test/testcases/responses/whois.nic.am/registered.txt +42 -0
- data/test/testcases/responses/whois.nic.as/available.txt +12 -0
- data/test/testcases/responses/whois.nic.as/registered.txt +18 -0
- data/test/testcases/responses/whois.nic.it/property_admin_contact.txt +53 -0
- data/test/testcases/responses/whois.nic.it/{contact.txt → property_registrant_contact.txt} +0 -0
- data/test/testcases/responses/whois.nic.it/property_technical_contact.txt +53 -0
- data/test/testcases/responses/whois.nic.st/available.txt +1 -0
- data/test/testcases/responses/whois.nic.st/registered.txt +47 -0
- data/whois.gemspec +5 -5
- metadata +36 -7
data/CHANGELOG.rdoc
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
= Changelog
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
==
|
|
4
|
+
== Release 1.1.0
|
|
5
|
+
|
|
6
|
+
* NEW: Added simple .am TLD parser (whois.nic.am).
|
|
7
|
+
|
|
8
|
+
* NEW: Added simple .as TLD parser (whois.nic.as).
|
|
9
|
+
|
|
10
|
+
* NEW: Added simple .au TLD parser (whois.ausregistry.net.au).
|
|
11
|
+
|
|
12
|
+
* NEW: Added simple .st TLD parser (whois.nic.st).
|
|
13
|
+
|
|
14
|
+
* NEW: New methods Whois::Answer#contacts, Whois::Answer::Parser#contacts, and Whois::Answer::Parser::Base#contacts returns all supported contacts.
|
|
15
|
+
|
|
16
|
+
* CHANGED: Renamed Whois::Answer::Parser::Base#(admin|technical|registrant) to Whois::Answer::Parser::Base#(admin|technical|registrant)_contact.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
== Release 1.0.12
|
|
5
20
|
|
|
6
21
|
* NEW: Added simple .in TLD parser (whois.registry.in).
|
|
7
22
|
|
data/Manifest
CHANGED
|
@@ -30,6 +30,7 @@ lib/whois/answer/parser/whois.afilias-grs.info.rb
|
|
|
30
30
|
lib/whois/answer/parser/whois.afilias.info.rb
|
|
31
31
|
lib/whois/answer/parser/whois.ai.rb
|
|
32
32
|
lib/whois/answer/parser/whois.arnes.si.rb
|
|
33
|
+
lib/whois/answer/parser/whois.ausregistry.net.au.rb
|
|
33
34
|
lib/whois/answer/parser/whois.biz.rb
|
|
34
35
|
lib/whois/answer/parser/whois.cat.rb
|
|
35
36
|
lib/whois/answer/parser/whois.cira.ca.rb
|
|
@@ -57,6 +58,8 @@ lib/whois/answer/parser/whois.nic-se.se.rb
|
|
|
57
58
|
lib/whois/answer/parser/whois.nic.ac.rb
|
|
58
59
|
lib/whois/answer/parser/whois.nic.af.rb
|
|
59
60
|
lib/whois/answer/parser/whois.nic.ag.rb
|
|
61
|
+
lib/whois/answer/parser/whois.nic.am.rb
|
|
62
|
+
lib/whois/answer/parser/whois.nic.as.rb
|
|
60
63
|
lib/whois/answer/parser/whois.nic.asia.rb
|
|
61
64
|
lib/whois/answer/parser/whois.nic.at.rb
|
|
62
65
|
lib/whois/answer/parser/whois.nic.cc.rb
|
|
@@ -77,6 +80,7 @@ lib/whois/answer/parser/whois.nic.mx.rb
|
|
|
77
80
|
lib/whois/answer/parser/whois.nic.name.rb
|
|
78
81
|
lib/whois/answer/parser/whois.nic.nu.rb
|
|
79
82
|
lib/whois/answer/parser/whois.nic.or.kr.rb
|
|
83
|
+
lib/whois/answer/parser/whois.nic.st.rb
|
|
80
84
|
lib/whois/answer/parser/whois.nic.tel.rb
|
|
81
85
|
lib/whois/answer/parser/whois.nic.tl.rb
|
|
82
86
|
lib/whois/answer/parser/whois.nic.travel.rb
|
|
@@ -120,6 +124,7 @@ lib/whois/server/adapters/verisign.rb
|
|
|
120
124
|
lib/whois/server/adapters/web.rb
|
|
121
125
|
lib/whois/version.rb
|
|
122
126
|
tasks/server.rake
|
|
127
|
+
test/answer/contact_test.rb
|
|
123
128
|
test/answer/parser/base_test.rb
|
|
124
129
|
test/answer/parser/blank_test.rb
|
|
125
130
|
test/answer/parser/jobswhois.verisign-grs.com_test.rb
|
|
@@ -130,6 +135,7 @@ test/answer/parser/whois.afilias-grs.info_test.rb
|
|
|
130
135
|
test/answer/parser/whois.afilias.info_test.rb
|
|
131
136
|
test/answer/parser/whois.ai_test.rb
|
|
132
137
|
test/answer/parser/whois.arnes.si_test.rb
|
|
138
|
+
test/answer/parser/whois.ausregistry.net.au_test.rb
|
|
133
139
|
test/answer/parser/whois.biz_test.rb
|
|
134
140
|
test/answer/parser/whois.cat_test.rb
|
|
135
141
|
test/answer/parser/whois.cira.ca_test.rb
|
|
@@ -157,6 +163,8 @@ test/answer/parser/whois.nic-se.se_test.rb
|
|
|
157
163
|
test/answer/parser/whois.nic.ac_test.rb
|
|
158
164
|
test/answer/parser/whois.nic.af_test.rb
|
|
159
165
|
test/answer/parser/whois.nic.ag_test.rb
|
|
166
|
+
test/answer/parser/whois.nic.am_test.rb
|
|
167
|
+
test/answer/parser/whois.nic.as_test.rb
|
|
160
168
|
test/answer/parser/whois.nic.asia_test.rb
|
|
161
169
|
test/answer/parser/whois.nic.at_test.rb
|
|
162
170
|
test/answer/parser/whois.nic.cc_test.rb
|
|
@@ -177,6 +185,7 @@ test/answer/parser/whois.nic.mx_test.rb
|
|
|
177
185
|
test/answer/parser/whois.nic.name_test.rb
|
|
178
186
|
test/answer/parser/whois.nic.nu_test.rb
|
|
179
187
|
test/answer/parser/whois.nic.or.kr_test.rb
|
|
188
|
+
test/answer/parser/whois.nic.st_test.rb
|
|
180
189
|
test/answer/parser/whois.nic.tel_test.rb
|
|
181
190
|
test/answer/parser/whois.nic.tl_test.rb
|
|
182
191
|
test/answer/parser/whois.nic.travel_test.rb
|
|
@@ -256,6 +265,8 @@ test/testcases/responses/whois.ai/available.txt
|
|
|
256
265
|
test/testcases/responses/whois.ai/registered.txt
|
|
257
266
|
test/testcases/responses/whois.arnes.si/available.txt
|
|
258
267
|
test/testcases/responses/whois.arnes.si/registered.txt
|
|
268
|
+
test/testcases/responses/whois.ausregistry.net.au/available.txt
|
|
269
|
+
test/testcases/responses/whois.ausregistry.net.au/registered.txt
|
|
259
270
|
test/testcases/responses/whois.biz/available.txt
|
|
260
271
|
test/testcases/responses/whois.biz/registered.txt
|
|
261
272
|
test/testcases/responses/whois.cat/available.txt
|
|
@@ -272,7 +283,8 @@ test/testcases/responses/whois.denic.de/1-10-0_available.txt
|
|
|
272
283
|
test/testcases/responses/whois.denic.de/1-10-0_registered.txt
|
|
273
284
|
test/testcases/responses/whois.denic.de/available.txt
|
|
274
285
|
test/testcases/responses/whois.denic.de/error_invalid_domain_name.txt
|
|
275
|
-
test/testcases/responses/whois.denic.de/
|
|
286
|
+
test/testcases/responses/whois.denic.de/property_nameservers_with_ip.txt
|
|
287
|
+
test/testcases/responses/whois.denic.de/property_technical_contact.txt
|
|
276
288
|
test/testcases/responses/whois.denic.de/registered.txt
|
|
277
289
|
test/testcases/responses/whois.dk-hostmaster.dk/available.txt
|
|
278
290
|
test/testcases/responses/whois.dk-hostmaster.dk/registered.txt
|
|
@@ -295,7 +307,7 @@ test/testcases/responses/whois.educause.edu/registered.txt
|
|
|
295
307
|
test/testcases/responses/whois.eu.org/available.txt
|
|
296
308
|
test/testcases/responses/whois.eu.org/registered.txt
|
|
297
309
|
test/testcases/responses/whois.eu/available.txt
|
|
298
|
-
test/testcases/responses/whois.eu/
|
|
310
|
+
test/testcases/responses/whois.eu/property_nameservers_with_ip.txt
|
|
299
311
|
test/testcases/responses/whois.eu/registered.txt
|
|
300
312
|
test/testcases/responses/whois.hkdnr.net.hk/available.txt
|
|
301
313
|
test/testcases/responses/whois.hkdnr.net.hk/registered.txt
|
|
@@ -311,7 +323,7 @@ test/testcases/responses/whois.meregistry.net/registered.txt
|
|
|
311
323
|
test/testcases/responses/whois.museum/available.txt
|
|
312
324
|
test/testcases/responses/whois.museum/registered.txt
|
|
313
325
|
test/testcases/responses/whois.nic-se.se/available.txt
|
|
314
|
-
test/testcases/responses/whois.nic-se.se/
|
|
326
|
+
test/testcases/responses/whois.nic-se.se/property_nameservers_with_ip.txt
|
|
315
327
|
test/testcases/responses/whois.nic-se.se/registered.txt
|
|
316
328
|
test/testcases/responses/whois.nic.ac/available.txt
|
|
317
329
|
test/testcases/responses/whois.nic.ac/registered.txt
|
|
@@ -319,6 +331,10 @@ test/testcases/responses/whois.nic.af/available.txt
|
|
|
319
331
|
test/testcases/responses/whois.nic.af/registered.txt
|
|
320
332
|
test/testcases/responses/whois.nic.ag/available.txt
|
|
321
333
|
test/testcases/responses/whois.nic.ag/registered.txt
|
|
334
|
+
test/testcases/responses/whois.nic.am/available.txt
|
|
335
|
+
test/testcases/responses/whois.nic.am/registered.txt
|
|
336
|
+
test/testcases/responses/whois.nic.as/available.txt
|
|
337
|
+
test/testcases/responses/whois.nic.as/registered.txt
|
|
322
338
|
test/testcases/responses/whois.nic.asia/available.txt
|
|
323
339
|
test/testcases/responses/whois.nic.asia/registered.txt
|
|
324
340
|
test/testcases/responses/whois.nic.at/available.txt
|
|
@@ -357,7 +373,9 @@ test/testcases/responses/whois.nic.im/registered.txt
|
|
|
357
373
|
test/testcases/responses/whois.nic.io/available.txt
|
|
358
374
|
test/testcases/responses/whois.nic.io/registered.txt
|
|
359
375
|
test/testcases/responses/whois.nic.it/available.txt
|
|
360
|
-
test/testcases/responses/whois.nic.it/
|
|
376
|
+
test/testcases/responses/whois.nic.it/property_admin_contact.txt
|
|
377
|
+
test/testcases/responses/whois.nic.it/property_registrant_contact.txt
|
|
378
|
+
test/testcases/responses/whois.nic.it/property_technical_contact.txt
|
|
361
379
|
test/testcases/responses/whois.nic.it/registered.txt
|
|
362
380
|
test/testcases/responses/whois.nic.it/status_active.txt
|
|
363
381
|
test/testcases/responses/whois.nic.it/status_available.txt
|
|
@@ -378,6 +396,8 @@ test/testcases/responses/whois.nic.nu/available.txt
|
|
|
378
396
|
test/testcases/responses/whois.nic.nu/registered.txt
|
|
379
397
|
test/testcases/responses/whois.nic.or.kr/available.txt
|
|
380
398
|
test/testcases/responses/whois.nic.or.kr/registered.txt
|
|
399
|
+
test/testcases/responses/whois.nic.st/available.txt
|
|
400
|
+
test/testcases/responses/whois.nic.st/registered.txt
|
|
381
401
|
test/testcases/responses/whois.nic.tel/available.txt
|
|
382
402
|
test/testcases/responses/whois.nic.tel/registered.txt
|
|
383
403
|
test/testcases/responses/whois.nic.tl/available.txt
|
data/lib/whois.rb
CHANGED
|
@@ -63,8 +63,8 @@ module Whois
|
|
|
63
63
|
def self.available?(qstring)
|
|
64
64
|
query(qstring).available?
|
|
65
65
|
rescue ParserNotFound => e
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
warn "This method is not supported for this kind of object.\n" +
|
|
67
|
+
"Use Whois.query('#{qstring}') instead."
|
|
68
68
|
nil
|
|
69
69
|
end
|
|
70
70
|
|
|
@@ -87,8 +87,8 @@ module Whois
|
|
|
87
87
|
def self.registered?(qstring)
|
|
88
88
|
query(qstring).registered?
|
|
89
89
|
rescue ParserNotFound => e
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
warn "This method is not supported for this kind of object.\n" +
|
|
91
|
+
"Use Whois.query('#{qstring}') instead."
|
|
92
92
|
nil
|
|
93
93
|
end
|
|
94
94
|
|
|
@@ -101,7 +101,7 @@ module Whois
|
|
|
101
101
|
|
|
102
102
|
def self.deprecate(message = nil)
|
|
103
103
|
message ||= "You are using deprecated behavior which will be removed from the next major or minor release."
|
|
104
|
-
|
|
104
|
+
warn("DEPRECATION WARNING: #{message}")
|
|
105
105
|
end
|
|
106
106
|
|
|
107
107
|
end
|
data/lib/whois/answer.rb
CHANGED
|
@@ -82,6 +82,7 @@ module Whois
|
|
|
82
82
|
@content ||= parts.map(&:response).join("\n")
|
|
83
83
|
end
|
|
84
84
|
|
|
85
|
+
|
|
85
86
|
# Returns whether this answer changed compared to <tt>other</tt>.
|
|
86
87
|
#
|
|
87
88
|
# Comparing the Answer contents is not always as trivial as it seems.
|
|
@@ -102,6 +103,9 @@ module Whois
|
|
|
102
103
|
parser.unchanged?(other.parser)
|
|
103
104
|
end
|
|
104
105
|
|
|
106
|
+
def contacts
|
|
107
|
+
parser.contacts
|
|
108
|
+
end
|
|
105
109
|
|
|
106
110
|
|
|
107
111
|
# Lazy-loads and returns a <tt>Whois::Answer::Parser</tt> proxy for current answer.
|
|
@@ -130,7 +134,7 @@ module Whois
|
|
|
130
134
|
|
|
131
135
|
# Delegates all method calls to the internal parser.
|
|
132
136
|
def method_missing(method, *args, &block)
|
|
133
|
-
if Parser.properties.include?(method)
|
|
137
|
+
if (Parser.properties + Parser::METHODS).include?(method)
|
|
134
138
|
self.class.class_eval foo = %{
|
|
135
139
|
def #{method}(*args, &block)
|
|
136
140
|
if property_supported?(:#{method})
|
|
@@ -142,7 +146,7 @@ module Whois
|
|
|
142
146
|
}, __FILE__, __LINE__
|
|
143
147
|
send(method, *args, &block)
|
|
144
148
|
|
|
145
|
-
elsif method.to_s =~ /([a-z_]+)\?/ and Parser.properties.include?($1.to_sym)
|
|
149
|
+
elsif method.to_s =~ /([a-z_]+)\?/ and (Parser.properties + Parser::METHODS).include?($1.to_sym)
|
|
146
150
|
self.class.class_eval %{
|
|
147
151
|
def #{$1}?
|
|
148
152
|
!#{$1}.nil?
|
data/lib/whois/answer/contact.rb
CHANGED
|
@@ -23,29 +23,30 @@ module Whois
|
|
|
23
23
|
#
|
|
24
24
|
# = Contacts
|
|
25
25
|
#
|
|
26
|
-
# Holds the details of a Contact extracted from the WHOIS
|
|
26
|
+
# Holds the details of a <tt>Contact</tt> extracted from the WHOIS <tt>Answer</tt>.
|
|
27
27
|
#
|
|
28
|
-
# A Contact is composed by the following attributes:
|
|
28
|
+
# A <tt>Contact</tt> is composed by the following attributes:
|
|
29
29
|
#
|
|
30
|
-
# <tt>:id</tt
|
|
31
|
-
# <tt>:
|
|
32
|
-
# <tt>:
|
|
33
|
-
# <tt>:
|
|
34
|
-
# <tt>:
|
|
35
|
-
# <tt>:
|
|
36
|
-
# <tt>:
|
|
37
|
-
# <tt>:
|
|
38
|
-
# <tt>:
|
|
39
|
-
# <tt>:
|
|
40
|
-
# <tt>:
|
|
41
|
-
# <tt>:
|
|
42
|
-
# <tt>:
|
|
43
|
-
# <tt>:
|
|
30
|
+
# * <tt>:id</tt>:
|
|
31
|
+
# * <tt>:type</tt>: the contact type.
|
|
32
|
+
# * <tt>:name</tt>:
|
|
33
|
+
# * <tt>:organization</tt>:
|
|
34
|
+
# * <tt>:address</tt>:
|
|
35
|
+
# * <tt>:city</tt>:
|
|
36
|
+
# * <tt>:zip</tt>:
|
|
37
|
+
# * <tt>:state</tt>:
|
|
38
|
+
# * <tt>:country</tt>:
|
|
39
|
+
# * <tt>:country_code</tt>:
|
|
40
|
+
# * <tt>:phone</tt>:
|
|
41
|
+
# * <tt>:fax</tt>:
|
|
42
|
+
# * <tt>:email</tt>:
|
|
43
|
+
# * <tt>:created_on</tt>:
|
|
44
|
+
# * <tt>:updated_on</tt>:
|
|
44
45
|
#
|
|
45
46
|
# Be aware that every WHOIS server can return a different number of details
|
|
46
47
|
# or no details at all.
|
|
47
48
|
#
|
|
48
|
-
class Contact < SuperStruct.new(:id, :name, :organization,
|
|
49
|
+
class Contact < SuperStruct.new(:id, :name, :organization, :type,
|
|
49
50
|
:address, :city, :zip, :state, :country, :country_code,
|
|
50
51
|
:phone, :fax, :email,
|
|
51
52
|
:created_on, :updated_on)
|
data/lib/whois/answer/parser.rb
CHANGED
|
@@ -22,13 +22,20 @@ module Whois
|
|
|
22
22
|
#
|
|
23
23
|
class Parser
|
|
24
24
|
|
|
25
|
+
METHODS = [
|
|
26
|
+
:contacts,
|
|
27
|
+
# deprecated methods
|
|
28
|
+
:registrant, :admin, :technical,
|
|
29
|
+
]
|
|
30
|
+
|
|
25
31
|
@@properties = [
|
|
26
32
|
:disclaimer,
|
|
27
33
|
:domain, :domain_id,
|
|
28
34
|
:referral_whois, :referral_url,
|
|
29
35
|
:status, :available?, :registered?,
|
|
30
36
|
:created_on, :updated_on, :expires_on,
|
|
31
|
-
:registrar,
|
|
37
|
+
:registrar,
|
|
38
|
+
:registrant_contact, :admin_contact, :technical_contact,
|
|
32
39
|
:nameservers,
|
|
33
40
|
]
|
|
34
41
|
|
|
@@ -61,11 +68,19 @@ module Whois
|
|
|
61
68
|
end
|
|
62
69
|
|
|
63
70
|
|
|
71
|
+
# Collects and returns all the contacts from all parsers.
|
|
72
|
+
def contacts
|
|
73
|
+
parsers.inject([]) { |all, parser| all.concat(parser.contacts) }
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
|
|
64
77
|
private
|
|
65
78
|
|
|
66
79
|
def method_missing(method, *args, &block)
|
|
67
80
|
if Parser.properties.include?(method)
|
|
68
81
|
delegate_to_parsers(method, *args, &block)
|
|
82
|
+
elsif Parser::METHODS.include?(method)
|
|
83
|
+
delegate_to_parsers(method, *args, &block)
|
|
69
84
|
else
|
|
70
85
|
super
|
|
71
86
|
end
|
|
@@ -188,10 +188,6 @@ module Whois
|
|
|
188
188
|
@part = part
|
|
189
189
|
end
|
|
190
190
|
|
|
191
|
-
::Whois::Answer::Parser.properties.each do |property|
|
|
192
|
-
property_not_implemented(property)
|
|
193
|
-
end
|
|
194
|
-
|
|
195
191
|
def part
|
|
196
192
|
@part
|
|
197
193
|
end
|
|
@@ -219,6 +215,46 @@ module Whois
|
|
|
219
215
|
end
|
|
220
216
|
|
|
221
217
|
|
|
218
|
+
::Whois::Answer::Parser.properties.each do |property|
|
|
219
|
+
property_not_implemented(property)
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
# Returns an array of all supported contacts.
|
|
224
|
+
def contacts
|
|
225
|
+
contacts = []
|
|
226
|
+
contacts.concat([*registrant_contact]) if property_supported?(:registrant_contact)
|
|
227
|
+
contacts.concat([*admin_contact]) if property_supported?(:admin_contact)
|
|
228
|
+
contacts.concat([*technical_contact]) if property_supported?(:technical_contact)
|
|
229
|
+
contacts.compact
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
# @deprecated {#registrant} is deprecated
|
|
234
|
+
# and will be removed in a future version.
|
|
235
|
+
# Use {#registrant_contact}.
|
|
236
|
+
def registrant
|
|
237
|
+
Whois.deprecate "Whois::Answer::Parser::Base#registrant is deprecated and will be removed in a future version. Use Whois::Answer::Parser::Base#registrant_contact."
|
|
238
|
+
registrant_contact
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
# @deprecated {#admin} is deprecated
|
|
242
|
+
# and will be removed in a future version.
|
|
243
|
+
# Use {#admin_contact}.
|
|
244
|
+
def admin
|
|
245
|
+
Whois.deprecate "Whois::Answer::Parser::Base#admin is deprecated and will be removed in a future version. Use Whois::Answer::Parser::Base#admin_contact."
|
|
246
|
+
admin_contact
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
# @deprecated {#technical} is deprecated
|
|
250
|
+
# and will be removed in a future version.
|
|
251
|
+
# Use {#technical_contact}.
|
|
252
|
+
def technical
|
|
253
|
+
Whois.deprecate "Whois::Answer::Parser::Base#technical is deprecated and will be removed in a future version. Use Whois::Answer::Parser::Base#technical_contact."
|
|
254
|
+
technical_contact
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
|
|
222
258
|
protected
|
|
223
259
|
|
|
224
260
|
def content_for_scanner
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#
|
|
2
|
+
# = Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
#
|
|
7
|
+
# Category:: Net
|
|
8
|
+
# Package:: Whois
|
|
9
|
+
# Author:: Simone Carletti <weppos@weppos.net>
|
|
10
|
+
# License:: MIT License
|
|
11
|
+
#
|
|
12
|
+
#--
|
|
13
|
+
#
|
|
14
|
+
#++
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
require 'whois/answer/parser/base'
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
module Whois
|
|
21
|
+
class Answer
|
|
22
|
+
class Parser
|
|
23
|
+
|
|
24
|
+
#
|
|
25
|
+
# = whois.ausregistry.net.au parser
|
|
26
|
+
#
|
|
27
|
+
# Parser for the whois.ausregistry.net.au server.
|
|
28
|
+
#
|
|
29
|
+
# NOTE: This parser is just a stub and provides only a few basic methods
|
|
30
|
+
# to check for domain availability and get domain status.
|
|
31
|
+
# Please consider to contribute implementing missing methods.
|
|
32
|
+
# See WhoisNicIt parser for an explanation of all available methods
|
|
33
|
+
# and examples.
|
|
34
|
+
#
|
|
35
|
+
class WhoisAusregistryNetAu < Base
|
|
36
|
+
|
|
37
|
+
property_supported :status do
|
|
38
|
+
@status ||= if content_for_scanner =~ /Status:\s+(.*)\n/
|
|
39
|
+
$1
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
property_supported :available? do
|
|
44
|
+
@available ||= (content_for_scanner.strip == "No Data Found")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
property_supported :registered? do
|
|
48
|
+
!available?
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
property_not_supported :created_on
|
|
53
|
+
|
|
54
|
+
property_supported :updated_on do
|
|
55
|
+
@updated_on ||= if content_for_scanner =~ /Last Modified:\s+(.*)\n/
|
|
56
|
+
Time.parse($1)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
property_not_supported :expires_on
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
property_supported :nameservers do
|
|
64
|
+
@nameservers ||= content_for_scanner.scan(/Name Server:\s+(.+)\n/).flatten
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -68,16 +68,16 @@ module Whois
|
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
-
property_supported :
|
|
72
|
-
node("Holder")
|
|
71
|
+
property_supported :registrant_contact do
|
|
72
|
+
@registrant_contact ||= node("Holder")
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
property_supported :
|
|
76
|
-
node("Admin-C")
|
|
75
|
+
property_supported :admin_contact do
|
|
76
|
+
@admin_contact ||= node("Admin-C")
|
|
77
77
|
end
|
|
78
78
|
|
|
79
|
-
property_supported :
|
|
80
|
-
node("Tech-C")
|
|
79
|
+
property_supported :technical_contact do
|
|
80
|
+
@technical_contact ||= node("Tech-C")
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
|