whois 1.3.6 → 1.3.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +27 -0
- data/lib/whois/answer/parser/whois.aeda.net.ae.rb +1 -1
- data/lib/whois/answer/parser/whois.arnes.si.rb +11 -4
- data/lib/whois/answer/parser/whois.co.ca.rb +83 -0
- data/lib/whois/answer/parser/whois.co.ug.rb +3 -2
- data/lib/whois/answer/parser/whois.denic.de.rb +2 -0
- data/lib/whois/answer/parser/whois.netcom.cm.rb +89 -0
- data/lib/whois/answer/parser/whois.nic.af.rb +10 -4
- data/lib/whois/answer/parser/whois.nic.bo.rb +84 -0
- data/lib/whois/answer/parser/whois.nic.ck.rb +77 -0
- data/lib/whois/answer/parser/whois.nic.cl.rb +78 -0
- data/lib/whois/answer/parser/whois.nic.cx.rb +89 -0
- data/lib/whois/answer/parser/whois.nic.cz.rb +86 -0
- data/lib/whois/answer/parser/whois.nic.lv.rb +3 -3
- data/lib/whois/answer/parser/whois.nic.name.rb +3 -3
- data/lib/whois/answer/parser/whois.nic.priv.at.rb +71 -0
- data/lib/whois/answer/parser/whois.nic.uk.rb +2 -0
- data/lib/whois/answer/parser/whois.registro.br.rb +3 -3
- data/lib/whois/definitions/tlds.rb +1 -2
- data/lib/whois/version.rb +1 -1
- metadata +12 -4
data/CHANGELOG.rdoc
CHANGED
@@ -1,6 +1,33 @@
|
|
1
1
|
= Changelog
|
2
2
|
|
3
3
|
|
4
|
+
== Release 1.3.7
|
5
|
+
|
6
|
+
* SERVER: Updated the .ci TLD definition.
|
7
|
+
|
8
|
+
* SERVER: Removed the .co.uk TLD definition.
|
9
|
+
|
10
|
+
* NEW: Added simple .priv.at TLD parser (whois.nic.priv.at).
|
11
|
+
|
12
|
+
* NEW: Added simple .cx TLD parser (whois.nic.cx).
|
13
|
+
|
14
|
+
* NEW: Added simple .bo TLD parser (whois.nic.bo).
|
15
|
+
|
16
|
+
* NEW: Added simple .co.ca TLD parser (whois.co.ca).
|
17
|
+
|
18
|
+
* NEW: Added simple .ck TLD parser (whois.nic.ck).
|
19
|
+
|
20
|
+
* NEW: Added simple .cl TLD parser (whois.nic.cl).
|
21
|
+
|
22
|
+
* NEW: Added simple .cm TLD parser (whois.netcom.cm).
|
23
|
+
|
24
|
+
* NEW: Added simple .cz TLD parser (whois.nic.cz).
|
25
|
+
|
26
|
+
* CHANGED: Standardized whois.nic.af #status property, it now returns symbols instead of strings.
|
27
|
+
|
28
|
+
* CHANGED: Standardized whois.arnes.si #status property, it now returns symbols instead of strings.
|
29
|
+
|
30
|
+
|
4
31
|
== Release 1.3.6
|
5
32
|
|
6
33
|
* CHANGED: Deprecated Whois::Answer::Part#response.
|
@@ -35,17 +35,24 @@ module Whois
|
|
35
35
|
class WhoisArnesSi < Base
|
36
36
|
|
37
37
|
property_supported :status do
|
38
|
-
@status ||= if content_for_scanner =~ /status:\s+(
|
39
|
-
$1.downcase
|
38
|
+
@status ||= if content_for_scanner =~ /status:\s+(.+)\n/
|
39
|
+
case $1.downcase
|
40
|
+
when "ok" then :registered
|
41
|
+
else
|
42
|
+
raise ParserError, "Unknown status `#{$1}'. " +
|
43
|
+
"Please report the issue at http://github.com/weppos/whois/issues"
|
44
|
+
end
|
45
|
+
else
|
46
|
+
:available
|
40
47
|
end
|
41
48
|
end
|
42
49
|
|
43
50
|
property_supported :available? do
|
44
|
-
@available
|
51
|
+
@available ||= !!(content_for_scanner =~ /% No entries found/)
|
45
52
|
end
|
46
53
|
|
47
54
|
property_supported :registered? do
|
48
|
-
!available?
|
55
|
+
@registered ||= !available?
|
49
56
|
end
|
50
57
|
|
51
58
|
|
@@ -0,0 +1,83 @@
|
|
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.co.ca parser
|
26
|
+
#
|
27
|
+
# Parser for the whois.co.ca 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 WhoisCoCa < Base
|
36
|
+
|
37
|
+
property_supported :status do
|
38
|
+
@status ||= case
|
39
|
+
when available? then :available
|
40
|
+
when reserved? then :reserved
|
41
|
+
else :registered
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
property_supported :available? do
|
46
|
+
@available ||= !!(content_for_scanner =~ /^(.+) is available/)
|
47
|
+
end
|
48
|
+
|
49
|
+
property_supported :registered? do
|
50
|
+
@registered ||= !(available? || reserved?)
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
property_supported :created_on do
|
55
|
+
@created_on ||= if content_for_scanner =~ /date_approved:\s+(.+)\n/
|
56
|
+
Time.parse($1)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
property_not_supported :updated_on
|
61
|
+
|
62
|
+
property_supported :expires_on do
|
63
|
+
@expires_on ||= if content_for_scanner =~ /date_renewal:\s+(.+)\n/
|
64
|
+
Time.parse($1)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
property_supported :nameservers do
|
70
|
+
@nameservers ||= content_for_scanner.scan(/ns[\d]_hostname:\s+(.+)\n/).flatten
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
# NEWPROPERTY
|
75
|
+
def reserved?
|
76
|
+
!!(content_for_scanner =~ /^Domain is not available or is reserved by the registry/)
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -39,13 +39,14 @@ module Whois
|
|
39
39
|
end
|
40
40
|
|
41
41
|
property_supported :available? do
|
42
|
-
@available
|
42
|
+
@available ||= !!(content_for_scanner =~ /No entries found for the selected source/)
|
43
43
|
end
|
44
44
|
|
45
45
|
property_supported :registered? do
|
46
|
-
!available?
|
46
|
+
@registered ||= !available?
|
47
47
|
end
|
48
48
|
|
49
|
+
|
49
50
|
property_supported :created_on do
|
50
51
|
@created_on ||= if content_for_scanner =~ /Registered:\s+(.+)$/
|
51
52
|
Time.parse($1)
|
@@ -110,12 +110,14 @@ module Whois
|
|
110
110
|
end
|
111
111
|
|
112
112
|
|
113
|
+
# NEWPROPERTY
|
113
114
|
def version
|
114
115
|
@version ||= if content_for_scanner =~ /^% Version: (.+)$/
|
115
116
|
$1
|
116
117
|
end
|
117
118
|
end
|
118
119
|
|
120
|
+
# NEWPROPERTY
|
119
121
|
def invalid?
|
120
122
|
@invalid ||= (!!node("Invalid") || node("Status") == "invalid")
|
121
123
|
end
|
@@ -0,0 +1,89 @@
|
|
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.netcom.cm parser
|
26
|
+
#
|
27
|
+
# Parser for the whois.netcom.cm 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 WhoisNetcomCm < 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
|
+
raise ParserError, "Unknown status `#{$1}'. " +
|
44
|
+
"Please report the issue at http://github.com/weppos/whois/issues"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
property_supported :available? do
|
50
|
+
@available ||= (status == "Not Registered")
|
51
|
+
end
|
52
|
+
|
53
|
+
property_supported :registered? do
|
54
|
+
!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_supported :updated_on do
|
65
|
+
@updated_on ||= if content_for_scanner =~ /Modified:\s+(.*)\n/
|
66
|
+
Time.parse($1)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
property_supported :expires_on do
|
71
|
+
@expires_on ||= if content_for_scanner =~ /Expires:\s+(.*)\n/
|
72
|
+
Time.parse($1)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
property_supported :nameservers do
|
78
|
+
@nameservers ||= if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
|
79
|
+
$1.split("\n").map(&:strip)
|
80
|
+
else
|
81
|
+
[]
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -35,17 +35,23 @@ module Whois
|
|
35
35
|
class WhoisNicAf < Base
|
36
36
|
|
37
37
|
property_supported :status do
|
38
|
-
@status ||= if content_for_scanner =~ /Status:\s+(
|
39
|
-
$1
|
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
|
+
raise ParserError, "Unknown status `#{$1}'. " +
|
44
|
+
"Please report the issue at http://github.com/weppos/whois/issues"
|
45
|
+
end
|
40
46
|
end
|
41
47
|
end
|
42
48
|
|
43
49
|
property_supported :available? do
|
44
|
-
@available
|
50
|
+
@available ||= (status == :available)
|
45
51
|
end
|
46
52
|
|
47
53
|
property_supported :registered? do
|
48
|
-
!available?
|
54
|
+
@registered ||= !available?
|
49
55
|
end
|
50
56
|
|
51
57
|
|
@@ -0,0 +1,84 @@
|
|
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.registrypro.pro parser
|
26
|
+
#
|
27
|
+
# Parser for the whois.nic.bo 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 WhoisNicBo < Base
|
36
|
+
|
37
|
+
property_supported :domain do
|
38
|
+
@domain ||= if content_for_scanner =~ /Dominio:(.*)\n/
|
39
|
+
$1.strip
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
property_not_supported :domain_id
|
44
|
+
|
45
|
+
|
46
|
+
property_supported :status do
|
47
|
+
@status ||= if available?
|
48
|
+
:available
|
49
|
+
else
|
50
|
+
:registered
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
property_supported :available? do
|
55
|
+
@available ||= domain.nil?
|
56
|
+
end
|
57
|
+
|
58
|
+
property_supported :registered? do
|
59
|
+
@registered ||= !available?
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
property_supported :created_on do
|
64
|
+
@created_on ||= if content_for_scanner =~ /Fecha de registro:(.*)\n/
|
65
|
+
Time.parse($1)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
property_not_supported :updated_on
|
70
|
+
|
71
|
+
property_supported :expires_on do
|
72
|
+
@expires_on ||= if content_for_scanner =~ /Fecha de vencimiento:(.*)\n/
|
73
|
+
Time.parse($1)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
property_not_supported :nameservers
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,77 @@
|
|
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.ck parser
|
26
|
+
#
|
27
|
+
# Parser for the whois.nic.ck 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 WhoisNicCk < 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 =~ /% No entries found for the selected source/)
|
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 =~ /changed:\s+(.*)\n/
|
58
|
+
Time.parse($1.split(" ", 2).last)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
property_supported :expires_on do
|
63
|
+
@expires_on ||= if content_for_scanner =~ /remarks:\s+expires (.+)\n/
|
64
|
+
Time.parse($1)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
property_supported :nameservers do
|
70
|
+
@nameservers ||= content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
77
|
+
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.nic.cl parser
|
26
|
+
#
|
27
|
+
# Parser for the whois.nic.cl 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 WhoisNicCl < 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 =~ /^(.+?): no existe$/)
|
47
|
+
end
|
48
|
+
|
49
|
+
property_supported :registered? do
|
50
|
+
@registered ||= !available?
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
property_not_supported :created_on
|
55
|
+
|
56
|
+
# TODO: custom date format with foreigh month names
|
57
|
+
# property_supported :updated_on do
|
58
|
+
# @updated_on ||= if content_for_scanner =~ /changed:\s+(.*)\n/
|
59
|
+
# Time.parse($1.split(" ", 2).last)
|
60
|
+
# end
|
61
|
+
# end
|
62
|
+
|
63
|
+
property_not_supported :expires_on
|
64
|
+
|
65
|
+
|
66
|
+
property_supported :nameservers do
|
67
|
+
@nameservers ||= if content_for_scanner =~ /Servidores de nombre \(Domain servers\):\n((.+\n)+)\n/
|
68
|
+
$1.split("\n").map { |value| value.split(" ").first }
|
69
|
+
else
|
70
|
+
[]
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,89 @@
|
|
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.cx parser
|
26
|
+
#
|
27
|
+
# Parser for the whois.nic.cx 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 WhoisNicCx < 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
|
+
raise ParserError, "Unknown status `#{$1}'. " +
|
44
|
+
"Please report the issue at http://github.com/weppos/whois/issues"
|
45
|
+
end
|
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_supported :updated_on do
|
65
|
+
@updated_on ||= if content_for_scanner =~ /Modified:\s+(.*)\n/
|
66
|
+
Time.parse($1)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
property_supported :expires_on do
|
71
|
+
@expires_on ||= if content_for_scanner =~ /Expires:\s+(.*)\n/
|
72
|
+
Time.parse($1)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
property_supported :nameservers do
|
78
|
+
@nameservers ||= if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
|
79
|
+
$1.split("\n").map(&:strip)
|
80
|
+
else
|
81
|
+
[]
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,86 @@
|
|
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.cz parser
|
26
|
+
#
|
27
|
+
# Parser for the whois.nic.cz 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 WhoisNicCz < Base
|
36
|
+
|
37
|
+
property_supported :status do
|
38
|
+
@status ||= if content_for_scanner =~ /status:\s+(.+)\n/
|
39
|
+
case $1.downcase
|
40
|
+
when "paid and in zone" then :registered
|
41
|
+
else
|
42
|
+
raise ParserError, "Unknown status `#{$1}'. " +
|
43
|
+
"Please report the issue at http://github.com/weppos/whois/issues"
|
44
|
+
end
|
45
|
+
else
|
46
|
+
:available
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
property_supported :available? do
|
51
|
+
@available ||= !!(content_for_scanner =~ /% No entries found/)
|
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 =~ /registered:\s+(.*)\n/
|
61
|
+
Time.parse($1)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
property_supported :updated_on do
|
66
|
+
@updated_on ||= if content_for_scanner =~ /changed:\s+(.*)\n/
|
67
|
+
Time.parse($1)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
property_supported :expires_on do
|
72
|
+
@expires_on ||= if content_for_scanner =~ /expire:\s+(.*)\n/
|
73
|
+
Time.parse($1)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
property_supported :nameservers do
|
79
|
+
@nameservers ||= content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map(&:strip)
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -35,7 +35,7 @@ module Whois
|
|
35
35
|
class WhoisNicLv < Base
|
36
36
|
|
37
37
|
property_supported :status do
|
38
|
-
if available?
|
38
|
+
@status ||= if available?
|
39
39
|
:available
|
40
40
|
else
|
41
41
|
:registered
|
@@ -43,11 +43,11 @@ module Whois
|
|
43
43
|
end
|
44
44
|
|
45
45
|
property_supported :available? do
|
46
|
-
@available ||=
|
46
|
+
@available ||= !!(content_for_scanner =~ /%ERR - Nothing found/)
|
47
47
|
end
|
48
48
|
|
49
49
|
property_supported :registered? do
|
50
|
-
!available?
|
50
|
+
@registered ||= !available?
|
51
51
|
end
|
52
52
|
|
53
53
|
|
@@ -35,7 +35,7 @@ module Whois
|
|
35
35
|
class WhoisNicName < Base
|
36
36
|
|
37
37
|
property_supported :status do
|
38
|
-
if available?
|
38
|
+
@status ||= if available?
|
39
39
|
:available
|
40
40
|
else
|
41
41
|
:registered
|
@@ -43,11 +43,11 @@ module Whois
|
|
43
43
|
end
|
44
44
|
|
45
45
|
property_supported :available? do
|
46
|
-
@available
|
46
|
+
@available ||= !!(content_for_scanner =~ /No match/)
|
47
47
|
end
|
48
48
|
|
49
49
|
property_supported :registered? do
|
50
|
-
!available?
|
50
|
+
@registered ||= !available?
|
51
51
|
end
|
52
52
|
|
53
53
|
|
@@ -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.priv.at parser
|
26
|
+
#
|
27
|
+
# Parser for the whois.nic.priv.at 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 WhoisNicPrivAt < 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 =~ /^% 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 =~ /changed:\s+(.+)\n/
|
58
|
+
Time.parse($1.strip.split(" ").last)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
property_not_supported :expires_on
|
63
|
+
|
64
|
+
|
65
|
+
property_not_supported :nameservers
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -35,7 +35,7 @@ module Whois
|
|
35
35
|
class WhoisRegistroBr < Base
|
36
36
|
|
37
37
|
property_supported :status do
|
38
|
-
if available?
|
38
|
+
@status ||= if available?
|
39
39
|
:available
|
40
40
|
else
|
41
41
|
:registered
|
@@ -43,11 +43,11 @@ module Whois
|
|
43
43
|
end
|
44
44
|
|
45
45
|
property_supported :available? do
|
46
|
-
@available
|
46
|
+
@available ||= !!(content_for_scanner =~ /No match for domain/)
|
47
47
|
end
|
48
48
|
|
49
49
|
property_supported :registered? do
|
50
|
-
!available?
|
50
|
+
@registered ||= !available?
|
51
51
|
end
|
52
52
|
|
53
53
|
|
@@ -89,13 +89,12 @@ Whois::Server.define :tld, ".cd", "whois.nic.cd"
|
|
89
89
|
Whois::Server.define :tld, ".cf", nil, {:adapter=>Whois::Server::Adapters::None}
|
90
90
|
Whois::Server.define :tld, ".cg", nil, {:web=>"http://www.nic.cg/cgi-bin/whois.pl", :adapter=>Whois::Server::Adapters::Web}
|
91
91
|
Whois::Server.define :tld, ".ch", "whois.nic.ch"
|
92
|
-
Whois::Server.define :tld, ".ci", "
|
92
|
+
Whois::Server.define :tld, ".ci", "whois.nic.ci"
|
93
93
|
Whois::Server.define :tld, ".ck", "whois.nic.ck"
|
94
94
|
Whois::Server.define :tld, ".cl", "whois.nic.cl"
|
95
95
|
Whois::Server.define :tld, ".cm", "whois.netcom.cm"
|
96
96
|
Whois::Server.define :tld, ".edu.cn", "whois.edu.cn"
|
97
97
|
Whois::Server.define :tld, ".cn", "whois.cnnic.cn"
|
98
|
-
Whois::Server.define :tld, ".uk.co", "whois.uk.co"
|
99
98
|
Whois::Server.define :tld, ".co", "whois.nic.co"
|
100
99
|
Whois::Server.define :tld, ".cr", nil, {:web=>"http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do", :adapter=>Whois::Server::Adapters::Web}
|
101
100
|
Whois::Server.define :tld, ".cu", nil, {:adapter=>Whois::Server::Adapters::Web, :web=>"http://www.nic.cu/"}
|
data/lib/whois/version.rb
CHANGED
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:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 1.3.
|
9
|
+
- 7
|
10
|
+
version: 1.3.7
|
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-09-
|
18
|
+
date: 2010-09-28 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/whois/answer/parser/whois.cira.ca.rb
|
76
76
|
- lib/whois/answer/parser/whois.cnnic.cn.rb
|
77
77
|
- lib/whois/answer/parser/whois.cnnic.net.cn.rb
|
78
|
+
- lib/whois/answer/parser/whois.co.ca.rb
|
78
79
|
- lib/whois/answer/parser/whois.co.ug.rb
|
79
80
|
- lib/whois/answer/parser/whois.crsnic.net.rb
|
80
81
|
- lib/whois/answer/parser/whois.denic.de.rb
|
@@ -100,6 +101,7 @@ files:
|
|
100
101
|
- lib/whois/answer/parser/whois.meregistry.net.rb
|
101
102
|
- lib/whois/answer/parser/whois.museum.rb
|
102
103
|
- lib/whois/answer/parser/whois.net.ua.rb
|
104
|
+
- lib/whois/answer/parser/whois.netcom.cm.rb
|
103
105
|
- lib/whois/answer/parser/whois.nic-se.se.rb
|
104
106
|
- lib/whois/answer/parser/whois.nic.ac.rb
|
105
107
|
- lib/whois/answer/parser/whois.nic.af.rb
|
@@ -108,11 +110,16 @@ files:
|
|
108
110
|
- lib/whois/answer/parser/whois.nic.as.rb
|
109
111
|
- lib/whois/answer/parser/whois.nic.asia.rb
|
110
112
|
- lib/whois/answer/parser/whois.nic.at.rb
|
113
|
+
- lib/whois/answer/parser/whois.nic.bo.rb
|
111
114
|
- lib/whois/answer/parser/whois.nic.cc.rb
|
112
115
|
- lib/whois/answer/parser/whois.nic.cd.rb
|
113
116
|
- lib/whois/answer/parser/whois.nic.ch.rb
|
117
|
+
- lib/whois/answer/parser/whois.nic.ck.rb
|
118
|
+
- lib/whois/answer/parser/whois.nic.cl.rb
|
114
119
|
- lib/whois/answer/parser/whois.nic.co.rb
|
115
120
|
- lib/whois/answer/parser/whois.nic.coop.rb
|
121
|
+
- lib/whois/answer/parser/whois.nic.cx.rb
|
122
|
+
- lib/whois/answer/parser/whois.nic.cz.rb
|
116
123
|
- lib/whois/answer/parser/whois.nic.ec.rb
|
117
124
|
- lib/whois/answer/parser/whois.nic.fr.rb
|
118
125
|
- lib/whois/answer/parser/whois.nic.gl.rb
|
@@ -133,6 +140,7 @@ files:
|
|
133
140
|
- lib/whois/answer/parser/whois.nic.nu.rb
|
134
141
|
- lib/whois/answer/parser/whois.nic.or.kr.rb
|
135
142
|
- lib/whois/answer/parser/whois.nic.org.uy.rb
|
143
|
+
- lib/whois/answer/parser/whois.nic.priv.at.rb
|
136
144
|
- lib/whois/answer/parser/whois.nic.sn.rb
|
137
145
|
- lib/whois/answer/parser/whois.nic.st.rb
|
138
146
|
- lib/whois/answer/parser/whois.nic.tel.rb
|