whois 1.3.8 → 1.3.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,29 @@
1
1
  = Changelog
2
2
 
3
+ == Release 1.3.9
4
+
5
+ * SERVER: Sync definitions with Debian whois 5.0.8:
6
+ * Updated the .bb, .ps, and .lk TLD definitions.
7
+
8
+ * NEW: Added simple .dz TLD parser (whois.nic.dz).
9
+
10
+ * NEW: Added simple .fi TLD parser (whois.ficora.fi).
11
+
12
+ * NEW: Added simple .fj TLD parser (whois.usp.ac.fj).
13
+
14
+ * NEW: Added simple .gg TLD parser (whois.gg).
15
+
16
+ * NEW: Added simple .gs TLD parser (whois.nic.gs).
17
+
18
+ * NEW: Added simple .il TLD parser (whois.isoc.org.il).
19
+
20
+ * NEW: Added simple .ir TLD parser (whois.nic.ir).
21
+
22
+ * CHANGED: Standardized whois.pandi.or.id #status property, it now returns symbols instead of strings.
23
+
24
+ * FIXED: Compatibility with the new whois.cira.ca record schema.
25
+
26
+
3
27
  == Release 1.3.8
4
28
 
5
29
  * FIXED: The Verisign WHOIS adapter crashes in some rare circumstances when the response from the Verisign database returns a "not defined" value for the Referral Whois Server (#42)
@@ -136,4 +136,10 @@ module Whois
136
136
  warn("DEPRECATION WARNING: #{message}")
137
137
  end
138
138
 
139
+ def self.bug!(error, message) # :nodoc:
140
+ raise error, message.dup <<
141
+ " Please report the issue at" <<
142
+ " http://github.com/weppos/whois/issues"
143
+ end
144
+
139
145
  end
@@ -17,6 +17,12 @@ whois.aero (.aero)
17
17
  whois.nic.af (.af)
18
18
  whois.registry.in (.in)
19
19
 
20
+ whois.nic.af (.af)
21
+ whois.nic.gs (.gs)
22
+
23
+ whois.pandi.or.id
24
+ whois.nic.ir
25
+ ripe.net
20
26
 
21
27
  == Property Proposals
22
28
 
@@ -39,8 +39,7 @@ module Whois
39
39
  case $1.downcase
40
40
  when "ok" then :registered
41
41
  else
42
- raise ParserError, "Unknown status `#{$1}'. " +
43
- "Please report the issue at http://github.com/weppos/whois/issues"
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
44
43
  end
45
44
  else
46
45
  :available
@@ -37,12 +37,17 @@ module Whois
37
37
  property_supported :status do
38
38
  @status ||= if content_for_scanner =~ /Domain status:\s+(.*?)\n/
39
39
  case $1.downcase
40
- when "exist" then :registered
41
- when "avail" then :available
40
+ # schema-2
41
+ when "registered" then :registered
42
+ when "available" then :available
43
+ # schema-1
44
+ when "exist" then :registered
45
+ when "avail" then :available
42
46
  else
43
- raise ParserError, "Unknown status `#{$1}'. " +
44
- "Please report the issue at http://github.com/weppos/whois/issues"
47
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
45
48
  end
49
+ else
50
+ Whois.bug!(ParserError, "Unable to parse status.")
46
51
  end
47
52
  end
48
53
 
@@ -56,11 +61,16 @@ module Whois
56
61
 
57
62
 
58
63
  property_supported :created_on do
59
- @created_on ||= if content_for_scanner =~ /Approval date:\s+(.*?)\n/
64
+ # schema-2
65
+ @created_on ||= if content_for_scanner =~ /Creation date:\s+(.*?)\n/
66
+ Time.parse($1)
67
+ # schema-1
68
+ elsif content_for_scanner =~ /Approval date:\s+(.*?)\n/
60
69
  Time.parse($1)
61
70
  end
62
71
  end
63
72
 
73
+ # TODO: Not supported in schema-2?
64
74
  property_supported :updated_on do
65
75
  @updated_on ||= if content_for_scanner =~ /Updated date:\s+(.*?)\n/
66
76
  Time.parse($1)
@@ -68,7 +78,11 @@ module Whois
68
78
  end
69
79
 
70
80
  property_supported :expires_on do
71
- @expires_on ||= if content_for_scanner =~ /Renewal date:\s+(.*?)\n/
81
+ # schema-2
82
+ @expires_on ||= if content_for_scanner =~ /Expiry date:\s+(.*?)\n/
83
+ Time.parse($1)
84
+ # schema-1
85
+ elsif content_for_scanner =~ /Renewal date:\s+(.*?)\n/
72
86
  Time.parse($1)
73
87
  end
74
88
  end
@@ -92,6 +106,19 @@ module Whois
92
106
  end
93
107
  end
94
108
 
109
+
110
+ # Attempts to detect and returns the
111
+ # schema version.
112
+ def schema
113
+ @schema ||= if content_for_scanner =~ /^% \(c\) (.+?) Canadian Internet Registration Authority/
114
+ case $1
115
+ when "2007" then "1"
116
+ when "2010" then "2"
117
+ end
118
+ end
119
+ @schema || Whois.bug!(ParserError, "Unable to detect schema version.")
120
+ end
121
+
95
122
  end
96
123
 
97
124
  end
@@ -40,8 +40,7 @@ module Whois
40
40
  when "active" then :registered
41
41
  when "in quarantine" then :quarantine
42
42
  else
43
- raise ParserError, "Unknown status `#{$1}'. " +
44
- "Please report the issue at http://github.com/weppos/whois/issues"
43
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
45
44
  end
46
45
  else
47
46
  :available
@@ -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.ficora.fi parser
26
+ #
27
+ # Parser for the whois.ficora.fi 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 WhoisFicoraFi < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if content_for_scanner =~ /status:\s+(.*?)\n/
39
+ case $1.downcase
40
+ when "granted" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
46
+ end
47
+ end
48
+
49
+ property_supported :available? do
50
+ @available ||= (status == :available)
51
+ end
52
+
53
+ property_supported :registered? do
54
+ @registered ||= !available?
55
+ end
56
+
57
+
58
+ property_supported :created_on do
59
+ @created_on ||= if content_for_scanner =~ /created:\s+(.*)\n/
60
+ Time.parse($1)
61
+ end
62
+ end
63
+
64
+ property_not_supported :updated_on
65
+
66
+ property_supported :expires_on do
67
+ @expires_on ||= if content_for_scanner =~ /expires:\s+(.*)\n/
68
+ Time.parse($1)
69
+ end
70
+ end
71
+
72
+
73
+ property_supported :nameservers do
74
+ @nameservers ||= content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map { |value| value.split(" ").first }
75
+ end
76
+
77
+ end
78
+
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,78 @@
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.gg parser
26
+ #
27
+ # Parser for the whois.gg 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 WhoisGg < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if content_for_scanner =~ /status:(.+?)\n/
39
+ case $1.downcase
40
+ when "0" then :available
41
+ when "1" then :registered
42
+ else
43
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
44
+ end
45
+ else
46
+ Whois.bug!(ParserError, "Unable to parse status.")
47
+ end
48
+ end
49
+
50
+ property_supported :available? do
51
+ @available ||= (status == :available)
52
+ end
53
+
54
+ property_supported :registered? do
55
+ @registered ||= !available?
56
+ end
57
+
58
+
59
+ property_not_supported :created_on
60
+
61
+ property_not_supported :updated_on
62
+
63
+ property_not_supported :expires_on
64
+
65
+
66
+ property_supported :nameservers do
67
+ @nameservers ||= if content_for_scanner =~ /Registered Nameservers\n[-]+\n((.+\n)+)\n/
68
+ $1.split("\n").map { |value| value.chomp(".") }
69
+ else
70
+ []
71
+ end
72
+ end
73
+
74
+ end
75
+
76
+ end
77
+ end
78
+ end
@@ -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.isoc.org.il parser
26
+ #
27
+ # Parser for the whois.isoc.org.il 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 WhoisIsocOrgIl < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if content_for_scanner =~ /status:\s+(.*?)\n/
39
+ case $1.downcase
40
+ when "transfer locked" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
46
+ end
47
+ end
48
+
49
+ property_supported :available? do
50
+ @available ||= (status == :available)
51
+ end
52
+
53
+ property_supported :registered? do
54
+ @registered ||= !available?
55
+ end
56
+
57
+
58
+ # TODO: first changed record
59
+ property_not_supported :created_on
60
+
61
+ property_supported :updated_on do
62
+ @updated_on ||= if content_for_scanner =~ /changed:\s+(.+)\n/
63
+ t = content_for_scanner.scan(/changed:\s+(?:.+?) (\d+) \(Changed\)\n/).flatten.last
64
+ Time.parse(t)
65
+ end
66
+ end
67
+
68
+ property_not_supported :expires_on
69
+
70
+
71
+ property_supported :nameservers do
72
+ @nameservers ||= content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map { |value| value.split(" ").first }
73
+ end
74
+
75
+ end
76
+
77
+ end
78
+ end
79
+ end
@@ -40,8 +40,7 @@ module Whois
40
40
  when "active" then :registered
41
41
  when "not registered" then :available
42
42
  else
43
- raise ParserError, "Unknown status `#{$1}'. " +
44
- "Please report the issue at http://github.com/weppos/whois/issues"
43
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
45
44
  end
46
45
  end
47
46
  end
@@ -40,9 +40,10 @@ module Whois
40
40
  when "active" then :registered
41
41
  when "not registered" then :available
42
42
  else
43
- raise ParserError, "Unknown status `#{$1}'. " +
44
- "Please report the issue at http://github.com/weppos/whois/issues"
43
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
45
44
  end
45
+ else
46
+ Whois.bug!(ParserError, "Unable to parse status.")
46
47
  end
47
48
  end
48
49
 
@@ -40,9 +40,10 @@ module Whois
40
40
  when "active" then :registered
41
41
  when "not registered" then :available
42
42
  else
43
- raise ParserError, "Unknown status `#{$1}'. " +
44
- "Please report the issue at http://github.com/weppos/whois/issues"
43
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
45
44
  end
45
+ else
46
+ Whois.bug!(ParserError, "Unable to parse status.")
46
47
  end
47
48
  end
48
49
 
@@ -39,8 +39,7 @@ module Whois
39
39
  case $1.downcase
40
40
  when "paid and in zone" then :registered
41
41
  else
42
- raise ParserError, "Unknown status `#{$1}'. " +
43
- "Please report the issue at http://github.com/weppos/whois/issues"
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
44
43
  end
45
44
  else
46
45
  :available
@@ -48,7 +47,7 @@ module Whois
48
47
  end
49
48
 
50
49
  property_supported :available? do
51
- @available ||= !!(content_for_scanner =~ /% No entries found/)
50
+ @available ||= !!(content_for_scanner =~ /%ERROR:101: no entries found/)
52
51
  end
53
52
 
54
53
  property_supported :registered? do
@@ -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.nic.dz parser
26
+ #
27
+ # Parser for the whois.nic.dz 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 WhoisNicDz < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if content_for_scanner =~ /ETAT:\.+(.*?)\n/
39
+ case $1.downcase
40
+ when "actif" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
46
+ end
47
+ end
48
+
49
+ property_supported :available? do
50
+ @available ||= !!(content_for_scanner =~ /^NO OBJECT FOUND!$/)
51
+ end
52
+
53
+ property_supported :registered? do
54
+ @registered ||= !available?
55
+ end
56
+
57
+
58
+ property_not_supported :created_on
59
+
60
+ property_not_supported :updated_on
61
+
62
+ property_not_supported :expires_on
63
+
64
+
65
+ property_not_supported :nameservers
66
+
67
+ end
68
+
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,90 @@
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.gs parser
26
+ #
27
+ # Parser for the whois.nic.gs 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 WhoisNicGs < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if content_for_scanner =~ /Status:\s+(.*?)\n/
39
+ case $1.downcase
40
+ when "active" then :registered
41
+ when "not registered" then :available
42
+ else
43
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
44
+ end
45
+ else
46
+ Whois.bug!(ParserError, "Unable to parse status.")
47
+ end
48
+ end
49
+
50
+ property_supported :available? do
51
+ @available ||= (status == :available)
52
+ end
53
+
54
+ property_supported :registered? do
55
+ @registered ||= !available?
56
+ end
57
+
58
+
59
+ property_supported :created_on do
60
+ @created_on ||= if content_for_scanner =~ /Created:\s+(.*)\n/
61
+ Time.parse($1)
62
+ end
63
+ end
64
+
65
+ property_supported :updated_on do
66
+ @updated_on ||= if content_for_scanner =~ /Modified:\s+(.*)\n/
67
+ Time.parse($1)
68
+ end
69
+ end
70
+
71
+ property_supported :expires_on do
72
+ @expires_on ||= if content_for_scanner =~ /Expires:\s+(.*)\n/
73
+ Time.parse($1)
74
+ end
75
+ end
76
+
77
+
78
+ property_supported :nameservers do
79
+ @nameservers ||= if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
80
+ $1.split("\n").map(&:strip)
81
+ else
82
+ []
83
+ end
84
+ end
85
+
86
+ end
87
+
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,73 @@
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.ir parser
26
+ #
27
+ # Parser for the whois.nic.ir 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 WhoisNicIr < 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 =~ /%ERROR:101: no entries found/)
47
+ end
48
+
49
+ property_supported :registered? do
50
+ @registered ||= !available?
51
+ end
52
+
53
+
54
+ property_not_supported :created_on
55
+
56
+ property_supported :updated_on do
57
+ @updated_on ||= if content_for_scanner =~ /last-updated:\s+(.*)\n/
58
+ Time.parse($1)
59
+ end
60
+ end
61
+
62
+ property_not_supported :expires_on
63
+
64
+
65
+ property_supported :nameservers do
66
+ @nameservers ||= content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten
67
+ end
68
+
69
+ end
70
+
71
+ end
72
+ end
73
+ end
@@ -35,17 +35,23 @@ module Whois
35
35
  class WhoisPandiOrId < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= if content_for_scanner =~ /domain-status:\s+(.*)\n/
39
- $1
38
+ @status ||= if content_for_scanner =~ /domain-status:\s+(.+)\n/
39
+ case $1.downcase
40
+ when "object is active" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
40
46
  end
41
47
  end
42
48
 
43
49
  property_supported :available? do
44
- @available ||= !!(content_for_scanner =~ /%ERROR:101: no entries found/)
50
+ @available ||= !!(content_for_scanner =~ /%ERROR:101: no entries found/)
45
51
  end
46
52
 
47
53
  property_supported :registered? do
48
- !available?
54
+ @registered ||= !available?
49
55
  end
50
56
 
51
57
 
@@ -43,7 +43,7 @@ module Whois
43
43
  end
44
44
 
45
45
  property_supported :available? do
46
- @available ||= !!(content_for_scanner =~ /no entries found/)
46
+ @available ||= !!(content_for_scanner =~ /%ERROR:101: no entries found/)
47
47
  end
48
48
 
49
49
  property_supported :registered? do
@@ -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.usp.ac.fj parser
26
+ #
27
+ # Parser for the whois.usp.ac.fj 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 WhoisUspAcFj < Base
36
+
37
+ property_supported :status do
38
+ @status ||= if content_for_scanner =~ /Status:\s+(.*?)\n/
39
+ case $1.downcase
40
+ when "active" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
46
+ end
47
+ end
48
+
49
+ property_supported :available? do
50
+ @available ||= !!(content_for_scanner =~ /^The domain (.+?) was not found!$/)
51
+ end
52
+
53
+ property_supported :registered? do
54
+ @registered ||= !available?
55
+ end
56
+
57
+
58
+ property_not_supported :created_on
59
+
60
+ property_not_supported :updated_on
61
+
62
+ property_supported :expires_on do
63
+ @expires_on ||= if content_for_scanner =~ /Expires:\s+(.*)\n/
64
+ Time.parse($1)
65
+ end
66
+ end
67
+
68
+
69
+ property_supported :nameservers do
70
+ @nameservers ||= if content_for_scanner =~ /Domain servers:\n\n((.+\n)+)\n/
71
+ $1.split("\n").map { |value| value.strip.downcase }
72
+ else
73
+ []
74
+ end
75
+ end
76
+
77
+ end
78
+
79
+ end
80
+ end
81
+ end
@@ -64,7 +64,7 @@ Whois::Server.define :tld, ".aw", nil, {:adapter=>Whois::Server::Adapters::None}
64
64
  Whois::Server.define :tld, ".ax", nil, {:adapter=>Whois::Server::Adapters::None}
65
65
  Whois::Server.define :tld, ".az", nil, {:web=>"http://www.nic.az/AzCheck.htm", :adapter=>Whois::Server::Adapters::Web}
66
66
  Whois::Server.define :tld, ".ba", nil, {:web=>"http://www.nic.ba/stream/whois/", :adapter=>Whois::Server::Adapters::Web}
67
- Whois::Server.define :tld, ".bb", nil, {:web=>"http://www.barbadosdomains.net/search_domain.php", :adapter=>Whois::Server::Adapters::Web}
67
+ Whois::Server.define :tld, ".bb", nil, {:web=>"http://whois.telecoms.gov.bb/search_domain.php", :adapter=>Whois::Server::Adapters::Web}
68
68
  Whois::Server.define :tld, ".bd", nil, {:adapter=>Whois::Server::Adapters::Web, :web=>"http://whois.btcl.net.bd/"}
69
69
  Whois::Server.define :tld, ".be", "whois.dns.be"
70
70
  Whois::Server.define :tld, ".bf", nil, {:adapter=>Whois::Server::Adapters::None}
@@ -175,7 +175,7 @@ Whois::Server.define :tld, ".la", "whois.nic.la"
175
175
  Whois::Server.define :tld, ".lb", nil, {:adapter=>Whois::Server::Adapters::Web, :web=>"http://www.aub.edu.lb/lbdr/"}
176
176
  Whois::Server.define :tld, ".lc", "whois.afilias-grs.info", {:adapter=>Whois::Server::Adapters::Afilias}
177
177
  Whois::Server.define :tld, ".li", "whois.nic.li"
178
- Whois::Server.define :tld, ".lk", "whois.nic.lk"
178
+ Whois::Server.define :tld, ".lk", nil, {:adapter=>Whois::Server::Adapters::None}
179
179
  Whois::Server.define :tld, ".lr", nil, {:adapter=>Whois::Server::Adapters::None}
180
180
  Whois::Server.define :tld, ".ls", nil, {:adapter=>Whois::Server::Adapters::Web, :web=>"http://www.co.ls/co.asp"}
181
181
  Whois::Server.define :tld, ".lt", "whois.domreg.lt"
@@ -228,7 +228,7 @@ Whois::Server.define :tld, ".pl", "whois.dns.pl"
228
228
  Whois::Server.define :tld, ".pm", "whois.nic.fr"
229
229
  Whois::Server.define :tld, ".pn", nil, {:web=>"http://www.pitcairn.pn/PnRegistry/", :adapter=>Whois::Server::Adapters::Web}
230
230
  Whois::Server.define :tld, ".pr", "whois.nic.pr"
231
- Whois::Server.define :tld, ".ps", nil, {:web=>"http://www.nic.ps/whois/whois.html", :adapter=>Whois::Server::Adapters::Web}
231
+ Whois::Server.define :tld, ".ps", "whois.pnina.ps"
232
232
  Whois::Server.define :tld, ".pt", "whois.dns.pt"
233
233
  Whois::Server.define :tld, ".pw", nil, {:adapter=>Whois::Server::Adapters::None}
234
234
  Whois::Server.define :tld, ".py", nil, {:web=>"http://www.nic.py/consultas.html", :adapter=>Whois::Server::Adapters::Web}
@@ -19,7 +19,7 @@ module Whois
19
19
  module Version
20
20
  MAJOR = 1
21
21
  MINOR = 3
22
- PATCH = 8
22
+ PATCH = 9
23
23
  BUILD = nil
24
24
 
25
25
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join(".")
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{whois}
5
- s.version = "1.3.7"
5
+ s.version = "1.3.8"
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 = %q{2010-09-28}
9
+ s.date = %q{2010-10-07}
10
10
  s.default_executable = %q{ruby-whois}
11
11
  s.description = %q{ 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.
12
12
  }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whois
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 8
10
- version: 1.3.8
9
+ - 9
10
+ version: 1.3.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Simone Carletti
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-07 00:00:00 +02:00
18
+ date: 2010-10-13 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -92,11 +92,14 @@ files:
92
92
  - lib/whois/answer/parser/whois.eenet.ee.rb
93
93
  - lib/whois/answer/parser/whois.eu.org.rb
94
94
  - lib/whois/answer/parser/whois.eu.rb
95
+ - lib/whois/answer/parser/whois.ficora.fi.rb
96
+ - lib/whois/answer/parser/whois.gg.rb
95
97
  - lib/whois/answer/parser/whois.hkdnr.net.hk.rb
96
98
  - lib/whois/answer/parser/whois.hkirc.hk.rb
97
99
  - lib/whois/answer/parser/whois.iana.org.rb
98
100
  - lib/whois/answer/parser/whois.in.ua.rb
99
101
  - lib/whois/answer/parser/whois.isnic.is.rb
102
+ - lib/whois/answer/parser/whois.isoc.org.il.rb
100
103
  - lib/whois/answer/parser/whois.jprs.jp.rb
101
104
  - lib/whois/answer/parser/whois.meregistry.net.rb
102
105
  - lib/whois/answer/parser/whois.museum.rb
@@ -120,14 +123,17 @@ files:
120
123
  - lib/whois/answer/parser/whois.nic.coop.rb
121
124
  - lib/whois/answer/parser/whois.nic.cx.rb
122
125
  - lib/whois/answer/parser/whois.nic.cz.rb
126
+ - lib/whois/answer/parser/whois.nic.dz.rb
123
127
  - lib/whois/answer/parser/whois.nic.ec.rb
124
128
  - lib/whois/answer/parser/whois.nic.fr.rb
125
129
  - lib/whois/answer/parser/whois.nic.gl.rb
126
130
  - lib/whois/answer/parser/whois.nic.gov.rb
131
+ - lib/whois/answer/parser/whois.nic.gs.rb
127
132
  - lib/whois/answer/parser/whois.nic.ht.rb
128
133
  - lib/whois/answer/parser/whois.nic.hu.rb
129
134
  - lib/whois/answer/parser/whois.nic.im.rb
130
135
  - lib/whois/answer/parser/whois.nic.io.rb
136
+ - lib/whois/answer/parser/whois.nic.ir.rb
131
137
  - lib/whois/answer/parser/whois.nic.it.rb
132
138
  - lib/whois/answer/parser/whois.nic.kz.rb
133
139
  - lib/whois/answer/parser/whois.nic.la.rb
@@ -164,6 +170,7 @@ files:
164
170
  - lib/whois/answer/parser/whois.samoanic.ws.rb
165
171
  - lib/whois/answer/parser/whois.srs.net.nz.rb
166
172
  - lib/whois/answer/parser/whois.tonic.to.rb
173
+ - lib/whois/answer/parser/whois.usp.ac.fj.rb
167
174
  - lib/whois/answer/parser/whois.za.net.rb
168
175
  - lib/whois/answer/parser/whois.za.org.rb
169
176
  - lib/whois/answer/parser.rb