whois 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. data/CHANGELOG.rdoc +15 -0
  2. data/Manifest +24 -0
  3. data/lib/whois/answer/parser/NOTES.txt +3 -0
  4. data/lib/whois/answer/parser/whois.cctld.uz.rb +79 -0
  5. data/lib/whois/answer/parser/whois.eenet.ee.rb +81 -0
  6. data/lib/whois/answer/parser/whois.nic.ec.rb +85 -0
  7. data/lib/whois/answer/parser/whois.nic.kz.rb +75 -0
  8. data/lib/whois/answer/parser/whois.nic.la.rb +79 -0
  9. data/lib/whois/answer/parser/whois.nic.org.uy.rb +79 -0
  10. data/lib/whois/answer/parser/whois.nic.ve.rb +3 -3
  11. data/lib/whois/version.rb +1 -1
  12. data/test/list_tld +7 -7
  13. data/test/testcases/responses/UTF8.txt +2 -0
  14. data/test/testcases/responses/whois.cctld.uz/available.txt +12 -0
  15. data/test/testcases/responses/whois.cctld.uz/registered.txt +123 -0
  16. data/test/testcases/responses/whois.eenet.ee/available.txt +6 -0
  17. data/test/testcases/responses/whois.eenet.ee/registered.txt +27 -0
  18. data/test/testcases/responses/whois.nic.ec/available.txt +1 -0
  19. data/test/testcases/responses/whois.nic.ec/registered.txt +40 -0
  20. data/test/testcases/responses/whois.nic.kz/available.txt +4 -0
  21. data/test/testcases/responses/whois.nic.kz/registered.txt +37 -0
  22. data/test/testcases/responses/whois.nic.la/available.txt +1 -0
  23. data/test/testcases/responses/whois.nic.la/registered.txt +70 -0
  24. data/test/testcases/responses/whois.nic.org.uy/available.txt +10 -0
  25. data/test/testcases/responses/whois.nic.org.uy/registered.txt +48 -0
  26. data/test/whois/answer/parser/whois.cctld.uz_test.rb +91 -0
  27. data/test/whois/answer/parser/whois.eenet.ee_test.rb +91 -0
  28. data/test/whois/answer/parser/whois.nic.ec_test.rb +98 -0
  29. data/test/whois/answer/parser/whois.nic.kz_test.rb +91 -0
  30. data/test/whois/answer/parser/whois.nic.la_test.rb +98 -0
  31. data/test/whois/answer/parser/whois.nic.org.uy_test.rb +91 -0
  32. data/test/whois/answer/parser/whois.nic.ve_test.rb +18 -4
  33. data/whois.gemspec +5 -5
  34. metadata +40 -4
data/CHANGELOG.rdoc CHANGED
@@ -1,6 +1,21 @@
1
1
  = Changelog
2
2
 
3
3
 
4
+ == Release 1.2.1
5
+
6
+ * NEW: Added simple .ee TLD parser (whois.eenet.ee).
7
+
8
+ * NEW: Added simple .kz TLD parser (whois.nic.kz).
9
+
10
+ * NEW: Added simple .la TLD parser (whois.nic.la).
11
+
12
+ * NEW: Added simple .ec TLD parser (whois.nic.ec).
13
+
14
+ * NEW: Added simple .uz TLD parser (whois.nic.uz).
15
+
16
+ * NEW: Added simple .uy TLD parser (whois.nic.org.uy).
17
+
18
+
4
19
  == Release 1.2.0
5
20
 
6
21
  * NEW: Whois::Answer#throttle? returns true in case of throttle response (see whois.publicinternetregistry.com for a real example)
data/Manifest CHANGED
@@ -34,6 +34,7 @@ lib/whois/answer/parser/whois.arnes.si.rb
34
34
  lib/whois/answer/parser/whois.ausregistry.net.au.rb
35
35
  lib/whois/answer/parser/whois.biz.rb
36
36
  lib/whois/answer/parser/whois.cat.rb
37
+ lib/whois/answer/parser/whois.cctld.uz.rb
37
38
  lib/whois/answer/parser/whois.cira.ca.rb
38
39
  lib/whois/answer/parser/whois.cnnic.cn.rb
39
40
  lib/whois/answer/parser/whois.cnnic.net.cn.rb
@@ -49,6 +50,7 @@ lib/whois/answer/parser/whois.domreg.lt.rb
49
50
  lib/whois/answer/parser/whois.dot.tk.rb
50
51
  lib/whois/answer/parser/whois.dotmobiregistry.net.rb
51
52
  lib/whois/answer/parser/whois.educause.edu.rb
53
+ lib/whois/answer/parser/whois.eenet.ee.rb
52
54
  lib/whois/answer/parser/whois.eu.org.rb
53
55
  lib/whois/answer/parser/whois.eu.rb
54
56
  lib/whois/answer/parser/whois.hkdnr.net.hk.rb
@@ -71,6 +73,7 @@ lib/whois/answer/parser/whois.nic.cc.rb
71
73
  lib/whois/answer/parser/whois.nic.cd.rb
72
74
  lib/whois/answer/parser/whois.nic.ch.rb
73
75
  lib/whois/answer/parser/whois.nic.coop.rb
76
+ lib/whois/answer/parser/whois.nic.ec.rb
74
77
  lib/whois/answer/parser/whois.nic.fr.rb
75
78
  lib/whois/answer/parser/whois.nic.gl.rb
76
79
  lib/whois/answer/parser/whois.nic.gov.rb
@@ -79,6 +82,8 @@ lib/whois/answer/parser/whois.nic.hu.rb
79
82
  lib/whois/answer/parser/whois.nic.im.rb
80
83
  lib/whois/answer/parser/whois.nic.io.rb
81
84
  lib/whois/answer/parser/whois.nic.it.rb
85
+ lib/whois/answer/parser/whois.nic.kz.rb
86
+ lib/whois/answer/parser/whois.nic.la.rb
82
87
  lib/whois/answer/parser/whois.nic.lv.rb
83
88
  lib/whois/answer/parser/whois.nic.ly.rb
84
89
  lib/whois/answer/parser/whois.nic.mu.rb
@@ -86,6 +91,7 @@ lib/whois/answer/parser/whois.nic.mx.rb
86
91
  lib/whois/answer/parser/whois.nic.name.rb
87
92
  lib/whois/answer/parser/whois.nic.nu.rb
88
93
  lib/whois/answer/parser/whois.nic.or.kr.rb
94
+ lib/whois/answer/parser/whois.nic.org.uy.rb
89
95
  lib/whois/answer/parser/whois.nic.sn.rb
90
96
  lib/whois/answer/parser/whois.nic.st.rb
91
97
  lib/whois/answer/parser/whois.nic.tel.rb
@@ -180,6 +186,8 @@ test/testcases/responses/whois.biz/available.txt
180
186
  test/testcases/responses/whois.biz/registered.txt
181
187
  test/testcases/responses/whois.cat/available.txt
182
188
  test/testcases/responses/whois.cat/registered.txt
189
+ test/testcases/responses/whois.cctld.uz/available.txt
190
+ test/testcases/responses/whois.cctld.uz/registered.txt
183
191
  test/testcases/responses/whois.cira.ca/available.txt
184
192
  test/testcases/responses/whois.cira.ca/registered.txt
185
193
  test/testcases/responses/whois.cnnic.cn/available.txt
@@ -218,6 +226,8 @@ test/testcases/responses/whois.dotmobiregistry.net/available.txt
218
226
  test/testcases/responses/whois.dotmobiregistry.net/registered.txt
219
227
  test/testcases/responses/whois.educause.edu/available.txt
220
228
  test/testcases/responses/whois.educause.edu/registered.txt
229
+ test/testcases/responses/whois.eenet.ee/available.txt
230
+ test/testcases/responses/whois.eenet.ee/registered.txt
221
231
  test/testcases/responses/whois.eu.org/available.txt
222
232
  test/testcases/responses/whois.eu.org/registered.txt
223
233
  test/testcases/responses/whois.eu/available.txt
@@ -268,6 +278,8 @@ test/testcases/responses/whois.nic.ch/property_nameservers_with_ip.txt
268
278
  test/testcases/responses/whois.nic.ch/registered.txt
269
279
  test/testcases/responses/whois.nic.coop/available.txt
270
280
  test/testcases/responses/whois.nic.coop/registered.txt
281
+ test/testcases/responses/whois.nic.ec/available.txt
282
+ test/testcases/responses/whois.nic.ec/registered.txt
271
283
  test/testcases/responses/whois.nic.fr/fr/available.txt
272
284
  test/testcases/responses/whois.nic.fr/fr/registered.txt
273
285
  test/testcases/responses/whois.nic.fr/pm/available.txt
@@ -303,6 +315,10 @@ test/testcases/responses/whois.nic.it/property_status_active.txt
303
315
  test/testcases/responses/whois.nic.it/property_status_available.txt
304
316
  test/testcases/responses/whois.nic.it/property_technical_contact.txt
305
317
  test/testcases/responses/whois.nic.it/registered.txt
318
+ test/testcases/responses/whois.nic.kz/available.txt
319
+ test/testcases/responses/whois.nic.kz/registered.txt
320
+ test/testcases/responses/whois.nic.la/available.txt
321
+ test/testcases/responses/whois.nic.la/registered.txt
306
322
  test/testcases/responses/whois.nic.lv/available.txt
307
323
  test/testcases/responses/whois.nic.lv/registered.txt
308
324
  test/testcases/responses/whois.nic.ly/available.txt
@@ -320,6 +336,8 @@ test/testcases/responses/whois.nic.nu/available.txt
320
336
  test/testcases/responses/whois.nic.nu/registered.txt
321
337
  test/testcases/responses/whois.nic.or.kr/available.txt
322
338
  test/testcases/responses/whois.nic.or.kr/registered.txt
339
+ test/testcases/responses/whois.nic.org.uy/available.txt
340
+ test/testcases/responses/whois.nic.org.uy/registered.txt
323
341
  test/testcases/responses/whois.nic.sn/available.txt
324
342
  test/testcases/responses/whois.nic.sn/registered.txt
325
343
  test/testcases/responses/whois.nic.st/available.txt
@@ -398,6 +416,7 @@ test/whois/answer/parser/whois.arnes.si_test.rb
398
416
  test/whois/answer/parser/whois.ausregistry.net.au_test.rb
399
417
  test/whois/answer/parser/whois.biz_test.rb
400
418
  test/whois/answer/parser/whois.cat_test.rb
419
+ test/whois/answer/parser/whois.cctld.uz_test.rb
401
420
  test/whois/answer/parser/whois.cira.ca_test.rb
402
421
  test/whois/answer/parser/whois.cnnic.cn_test.rb
403
422
  test/whois/answer/parser/whois.cnnic.net.cn_test.rb
@@ -413,6 +432,7 @@ test/whois/answer/parser/whois.domreg.lt_test.rb
413
432
  test/whois/answer/parser/whois.dot.tk_test.rb
414
433
  test/whois/answer/parser/whois.dotmobiregistry.net_test.rb
415
434
  test/whois/answer/parser/whois.educause.edu_test.rb
435
+ test/whois/answer/parser/whois.eenet.ee_test.rb
416
436
  test/whois/answer/parser/whois.eu.org_test.rb
417
437
  test/whois/answer/parser/whois.eu_test.rb
418
438
  test/whois/answer/parser/whois.hkdnr.net.hk_test.rb
@@ -435,6 +455,7 @@ test/whois/answer/parser/whois.nic.cc_test.rb
435
455
  test/whois/answer/parser/whois.nic.cd_test.rb
436
456
  test/whois/answer/parser/whois.nic.ch_test.rb
437
457
  test/whois/answer/parser/whois.nic.coop_test.rb
458
+ test/whois/answer/parser/whois.nic.ec_test.rb
438
459
  test/whois/answer/parser/whois.nic.fr_test.rb
439
460
  test/whois/answer/parser/whois.nic.gl_test.rb
440
461
  test/whois/answer/parser/whois.nic.gov_test.rb
@@ -443,6 +464,8 @@ test/whois/answer/parser/whois.nic.hu_test.rb
443
464
  test/whois/answer/parser/whois.nic.im_test.rb
444
465
  test/whois/answer/parser/whois.nic.io_test.rb
445
466
  test/whois/answer/parser/whois.nic.it_test.rb
467
+ test/whois/answer/parser/whois.nic.kz_test.rb
468
+ test/whois/answer/parser/whois.nic.la_test.rb
446
469
  test/whois/answer/parser/whois.nic.lv_test.rb
447
470
  test/whois/answer/parser/whois.nic.ly_test.rb
448
471
  test/whois/answer/parser/whois.nic.mu_test.rb
@@ -450,6 +473,7 @@ test/whois/answer/parser/whois.nic.mx_test.rb
450
473
  test/whois/answer/parser/whois.nic.name_test.rb
451
474
  test/whois/answer/parser/whois.nic.nu_test.rb
452
475
  test/whois/answer/parser/whois.nic.or.kr_test.rb
476
+ test/whois/answer/parser/whois.nic.org.uy_test.rb
453
477
  test/whois/answer/parser/whois.nic.sn_test.rb
454
478
  test/whois/answer/parser/whois.nic.st_test.rb
455
479
  test/whois/answer/parser/whois.nic.tel_test.rb
@@ -12,6 +12,9 @@ whois.registry.in (.in)
12
12
  whois.museum (.museum)
13
13
  whois.cat (.cat)
14
14
 
15
+ .ve
16
+ .uy
17
+
15
18
 
16
19
  == Property Proposals
17
20
 
@@ -0,0 +1,79 @@
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.cctld.uz parser
26
+ #
27
+ # Parser for the whois.cctld.uz 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 WhoisCctldUz < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if content_for_scanner =~ /^Status: (.*)\n/
39
+ $1
40
+ end
41
+ end
42
+
43
+ property_supported :available? do
44
+ @available ||= !!(content_for_scanner =~ /not found in database/)
45
+ end
46
+
47
+ property_supported :registered? do
48
+ @registered ||= !available?
49
+ end
50
+
51
+
52
+ property_supported :created_on do
53
+ @created_on ||= if content_for_scanner =~ /^Creation Date:(.*)\n/
54
+ Time.parse($1)
55
+ end
56
+ end
57
+
58
+ property_not_supported :updated_on
59
+
60
+ property_supported :expires_on do
61
+ @expires_on ||= if content_for_scanner =~ /^Expiration Date:(.*)\n/
62
+ Time.parse($1)
63
+ end
64
+ end
65
+
66
+
67
+ property_supported :nameservers do
68
+ @nameservers ||= if content_for_scanner =~ /Domain servers in listed order:\n((.+\n)+)\n/
69
+ $1.split("\n").map { |value| value.strip.chomp(".") }
70
+ else
71
+ []
72
+ end
73
+ end
74
+
75
+ end
76
+
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,81 @@
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.eenet.ee parser
26
+ #
27
+ # Parser for the whois.eenet.ee 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 WhoisEenetEe < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if available?
39
+ :available
40
+ else
41
+ :registered
42
+ end
43
+ end
44
+
45
+ property_supported :available? do
46
+ @available ||= !!(content_for_scanner =~ /^NOT FOUND:/)
47
+ end
48
+
49
+ property_supported :registered? do
50
+ @registered ||= !available?
51
+ end
52
+
53
+
54
+ property_supported :created_on do
55
+ @created_on ||= if content_for_scanner =~ /Record created on (.*)\n/
56
+ Time.parse($1)
57
+ end
58
+ end
59
+
60
+ property_supported :updated_on do
61
+ @updated_on ||= if content_for_scanner =~ /Record changed on (.*)\n/
62
+ Time.parse($1)
63
+ end
64
+ end
65
+
66
+ property_not_supported :expires_on
67
+
68
+
69
+ property_supported :nameservers do
70
+ @nameservers ||= if content_for_scanner =~ /Domain servers:\n((.+\n)+)\n/
71
+ $1.split("\n").map { |value| value.strip.chomp(".") }
72
+ else
73
+ []
74
+ end
75
+ end
76
+
77
+ end
78
+
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,85 @@
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.nic.ec parser
26
+ #
27
+ # Parser for the whois.nic.ec 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 WhoisNicEc < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if available?
39
+ :available
40
+ else
41
+ :registered
42
+ end
43
+ end
44
+
45
+ property_supported :available? do
46
+ @available ||= !!(content_for_scanner =~ /Domain not registered/)
47
+ end
48
+
49
+ property_supported :registered? do
50
+ @registered ||= !available?
51
+ end
52
+
53
+
54
+ property_supported :created_on do
55
+ @created_on ||= if content_for_scanner =~ /^Fecha de Creacion:(.*)\n/
56
+ Time.parse($1)
57
+ end
58
+ end
59
+
60
+ property_supported :updated_on do
61
+ @updated_on ||= if content_for_scanner =~ /^Ultima Modificacion:(.*)\n/
62
+ Time.parse($1)
63
+ end
64
+ end
65
+
66
+ property_supported :expires_on do
67
+ @expires_on ||= if content_for_scanner =~ /^Fecha de Expiracion:(.*)\n/
68
+ Time.parse($1)
69
+ end
70
+ end
71
+
72
+
73
+ property_supported :nameservers do
74
+ @nameservers ||= if content_for_scanner =~ /Servidores de dominio \(Name Servers\)\n((.+\n)+)\n/
75
+ $1.split("\n")
76
+ else
77
+ []
78
+ end
79
+ end
80
+
81
+ end
82
+
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,75 @@
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.nic.kz parser
26
+ #
27
+ # Parser for the whois.nic.kz 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 WhoisNicKz < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if content_for_scanner =~ /Domain status : (.*)\n/
39
+ $1.strip
40
+ end
41
+ end
42
+
43
+ property_supported :available? do
44
+ @available ||= !!(content_for_scanner =~ /Nothing found for this query/)
45
+ end
46
+
47
+ property_supported :registered? do
48
+ @registered ||= !available?
49
+ end
50
+
51
+
52
+ property_supported :created_on do
53
+ @created_on ||= if content_for_scanner =~ /Domain created: (.*)\n/
54
+ Time.parse($1)
55
+ end
56
+ end
57
+
58
+ property_supported :updated_on do
59
+ @updated_on ||= if content_for_scanner =~ /Last modified : (.*)\n/
60
+ Time.parse($1)
61
+ end
62
+ end
63
+
64
+ property_not_supported :expires_on
65
+
66
+
67
+ property_supported :nameservers do
68
+ @nameservers ||= content_for_scanner.scan(/^\w+ server\.+:\s(.*)\n/).flatten
69
+ end
70
+
71
+ end
72
+
73
+ end
74
+ end
75
+ end