whois 1.0.12 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|