whois 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. data/CHANGELOG.rdoc +61 -0
  2. data/Manifest +87 -4
  3. data/README.rdoc +13 -9
  4. data/Rakefile +4 -1
  5. data/bin/ruby-whois +35 -21
  6. data/lib/whois.rb +6 -0
  7. data/lib/whois/answer.rb +30 -14
  8. data/lib/whois/answer/parser.rb +48 -11
  9. data/lib/whois/answer/parser/ast.rb +72 -0
  10. data/lib/whois/answer/parser/base.rb +14 -9
  11. data/lib/whois/answer/parser/blank.rb +1 -1
  12. data/lib/whois/answer/parser/scanners/verisign.rb +117 -0
  13. data/lib/whois/answer/parser/whois.aero.rb +74 -0
  14. data/lib/whois/answer/parser/whois.afilias-grs.info.rb +72 -0
  15. data/lib/whois/answer/parser/whois.afilias.info.rb +72 -0
  16. data/lib/whois/answer/parser/whois.crsnic.net.rb +5 -115
  17. data/lib/whois/answer/parser/whois.denic.de.rb +28 -25
  18. data/lib/whois/answer/parser/whois.domainregistry.ie.rb +74 -0
  19. data/lib/whois/answer/parser/whois.educause.edu.rb +76 -0
  20. data/lib/whois/answer/parser/whois.eu.org.rb +73 -0
  21. data/lib/whois/answer/parser/whois.iana.org.rb +75 -0
  22. data/lib/whois/answer/parser/whois.nic.asia.rb +74 -0
  23. data/lib/whois/answer/parser/whois.nic.fr.rb +77 -0
  24. data/lib/whois/answer/parser/whois.nic.gov.rb +71 -0
  25. data/lib/whois/answer/parser/whois.nic.hu.rb +332 -0
  26. data/lib/whois/answer/parser/whois.nic.it.rb +5 -23
  27. data/lib/whois/answer/parser/whois.nic.name.rb +73 -0
  28. data/lib/whois/answer/parser/whois.nic.tv.rb +99 -0
  29. data/lib/whois/answer/parser/whois.publicinterestregistry.net.rb +6 -24
  30. data/lib/whois/answer/parser/whois.za.net.rb +75 -0
  31. data/lib/whois/answer/parser/whois.za.org.rb +75 -0
  32. data/lib/whois/client.rb +4 -3
  33. data/lib/whois/definitions/tld.notes.txt +1 -0
  34. data/lib/whois/definitions/tlds.rb +11 -49
  35. data/lib/whois/version.rb +5 -6
  36. data/lib/whois/whois.rb +0 -6
  37. data/test/answer/parser/base_test.rb +21 -0
  38. data/test/answer/parser/blank_test.rb +1 -1
  39. data/test/answer/parser/whois.aero_test.rb +51 -0
  40. data/test/answer/parser/whois.afilias-grs.info_test.rb +51 -0
  41. data/test/answer/parser/whois.afilias.info_test.rb +51 -0
  42. data/test/answer/parser/{whois_crsnic_net_test.rb → whois.crsnic.net_test.rb} +15 -68
  43. data/test/answer/parser/{whois_denic_de_test.rb → whois.denic.de_test.rb} +9 -34
  44. data/test/answer/parser/whois.domainregistry.ie_test.rb +51 -0
  45. data/test/answer/parser/whois.educause.edu_test.rb +51 -0
  46. data/test/answer/parser/whois.eu.org_test.rb +51 -0
  47. data/test/answer/parser/whois.iana.org_test.rb +51 -0
  48. data/test/answer/parser/whois.nic.asia_test.rb +51 -0
  49. data/test/answer/parser/whois.nic.fr_test.rb +51 -0
  50. data/test/answer/parser/whois.nic.gov_test.rb +51 -0
  51. data/test/answer/parser/whois.nic.hu_test.rb +226 -0
  52. data/test/answer/parser/{whois_nic_it_test.rb → whois.nic.it_test.rb} +3 -25
  53. data/test/answer/parser/whois.nic.name_test.rb +51 -0
  54. data/test/answer/parser/whois.nic.tv_test.rb +122 -0
  55. data/test/answer/parser/{whois_publicinterestregistry_net_test.rb → whois.publicinterestregistry.net_test.rb} +4 -26
  56. data/test/answer/parser/whois.za.net_test.rb +51 -0
  57. data/test/answer/parser/whois.za.org_test.rb +51 -0
  58. data/test/answer/parser_test.rb +44 -3
  59. data/test/answer_test.rb +27 -13
  60. data/test/client_test.rb +18 -11
  61. data/test/list_tld +319 -0
  62. data/test/test_helper.rb +24 -0
  63. data/test/testcases/responses/whois.aero/available.txt +1 -0
  64. data/test/testcases/responses/whois.aero/registered.txt +102 -0
  65. data/test/testcases/responses/whois.afilias-grs.info/available.txt +1 -0
  66. data/test/testcases/responses/whois.afilias-grs.info/bz/available.txt +1 -0
  67. data/test/testcases/responses/whois.afilias-grs.info/bz/registered.txt +122 -0
  68. data/test/testcases/responses/whois.afilias-grs.info/gi/available.txt +1 -0
  69. data/test/testcases/responses/whois.afilias-grs.info/gi/registered.txt +98 -0
  70. data/test/testcases/responses/whois.afilias-grs.info/hn/available.txt +1 -0
  71. data/test/testcases/responses/whois.afilias-grs.info/hn/registered.txt +85 -0
  72. data/test/testcases/responses/whois.afilias-grs.info/lc/available.txt +1 -0
  73. data/test/testcases/responses/whois.afilias-grs.info/lc/registered.txt +83 -0
  74. data/test/testcases/responses/whois.afilias-grs.info/mn/available.txt +1 -0
  75. data/test/testcases/responses/whois.afilias-grs.info/mn/registered.txt +100 -0
  76. data/test/testcases/responses/whois.afilias-grs.info/registered.txt +122 -0
  77. data/test/testcases/responses/whois.afilias-grs.info/sc/available.txt +1 -0
  78. data/test/testcases/responses/whois.afilias-grs.info/sc/registered.txt +85 -0
  79. data/test/testcases/responses/whois.afilias-grs.info/vc/available.txt +1 -0
  80. data/test/testcases/responses/whois.afilias-grs.info/vc/registered.txt +100 -0
  81. data/test/testcases/responses/whois.afilias.info/available.txt +1 -0
  82. data/test/testcases/responses/whois.afilias.info/registered.txt +104 -0
  83. data/test/testcases/responses/whois.crsnic.net/MULTIPLE.txt +3 -0
  84. data/test/testcases/responses/whois.domainregistry.ie/available.txt +7 -0
  85. data/test/testcases/responses/whois.domainregistry.ie/registered.txt +26 -0
  86. data/test/testcases/responses/whois.educause.edu/available.txt +28 -0
  87. data/test/testcases/responses/whois.educause.edu/registered.txt +66 -0
  88. data/test/testcases/responses/whois.eu.org/available.txt +1 -0
  89. data/test/testcases/responses/whois.eu.org/registered.txt +19 -0
  90. data/test/testcases/responses/whois.iana.org/MULTIPLE.txt +3 -0
  91. data/test/testcases/responses/whois.iana.org/available.txt +7 -0
  92. data/test/testcases/responses/whois.iana.org/registered.txt +89 -0
  93. data/test/testcases/responses/whois.nic.asia/available.txt +1 -0
  94. data/test/testcases/responses/whois.nic.asia/registered.txt +159 -0
  95. data/test/testcases/responses/whois.nic.fr/MULTIPLE.txt +4 -0
  96. data/test/testcases/responses/whois.nic.fr/available.txt +19 -0
  97. data/test/testcases/responses/whois.nic.fr/registered.txt +98 -0
  98. data/test/testcases/responses/whois.nic.gov/available.txt +1 -0
  99. data/test/testcases/responses/whois.nic.gov/registered.txt +5 -0
  100. data/test/testcases/responses/whois.nic.hu/available.txt +12 -0
  101. data/test/testcases/responses/whois.nic.hu/in_progress.txt +13 -0
  102. data/test/testcases/responses/whois.nic.hu/registered.txt +65 -0
  103. data/test/testcases/responses/whois.nic.name/available.txt +29 -0
  104. data/test/testcases/responses/whois.nic.name/registered.txt +36 -0
  105. data/test/testcases/responses/whois.nic.name/reserved.txt +30 -0
  106. data/test/testcases/responses/whois.nic.tv/available.txt +44 -0
  107. data/test/testcases/responses/whois.nic.tv/registered.txt +54 -0
  108. data/test/testcases/responses/whois.za.net/available.txt +9 -0
  109. data/test/testcases/responses/whois.za.net/registered.txt +42 -0
  110. data/test/testcases/responses/whois.za.org/available.txt +9 -0
  111. data/test/testcases/responses/whois.za.org/registered.txt +44 -0
  112. data/whois.gemspec +9 -6
  113. metadata +138 -15
data/test/answer_test.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class AnswerTest < Test::Unit::TestCase
4
-
4
+
5
5
  def setup
6
6
  @klass = Whois::Answer
7
7
  @server = Whois::Server.factory(:tld, ".foo", "whois.foo")
@@ -20,7 +20,7 @@ class AnswerTest < Test::Unit::TestCase
20
20
  assert_equal @server, answer.server
21
21
  assert_equal @parts, answer.parts
22
22
  end
23
-
23
+
24
24
  def test_initialize_should_require_server
25
25
  assert_raise(ArgumentError) { @klass.new }
26
26
  end
@@ -33,11 +33,11 @@ class AnswerTest < Test::Unit::TestCase
33
33
  def test_to_s
34
34
  assert_equal @content, @answer.to_s
35
35
  end
36
-
36
+
37
37
  def test_inspect
38
38
  assert_equal @content.inspect, @answer.inspect
39
39
  end
40
-
40
+
41
41
  def test_match
42
42
  # Force .to_a otherwise Match will be compared as Object instance
43
43
  # and the test will fail because they actually are different instances.
@@ -45,6 +45,11 @@ class AnswerTest < Test::Unit::TestCase
45
45
  assert_equal @content.match(/google/), @answer.match(/google/)
46
46
  end
47
47
 
48
+ def test_match?
49
+ assert @answer.match?(/domain\.foo/)
50
+ assert !@answer.match?(/google/)
51
+ end
52
+
48
53
  def test_equality_check_self
49
54
  assert_equal @answer, @answer
50
55
  assert @answer.eql?(@answer)
@@ -71,11 +76,6 @@ class AnswerTest < Test::Unit::TestCase
71
76
  assert_equal @content, answer.content
72
77
  end
73
78
 
74
- def test_match?
75
- assert @answer.match?(/domain\.foo/)
76
- assert !@answer.match?(/google/)
77
- end
78
-
79
79
 
80
80
  def test_parser
81
81
  answer = @klass.new(nil, [Whois::Answer::Part.new("", "whois.nic.it")])
@@ -85,14 +85,28 @@ class AnswerTest < Test::Unit::TestCase
85
85
  assert_instance_of Whois::Answer::Parser, answer.parser
86
86
  end
87
87
 
88
- def test_supported?
88
+ def test_properties
89
+ answer = @klass.new(nil, [])
90
+ answer.parser.expects(:property_supported?).with(:domain).returns(true)
91
+ answer.parser.expects(:property_supported?).with(:domain_id).returns(true)
92
+ answer.parser.expects(:property_supported?).with(Not(any_of(:domain, :domain_id))).at_least(1).returns(false)
93
+ answer.parser.expects(:domain).returns("foo.com")
94
+ answer.parser.expects(:domain_id).returns(27)
95
+
96
+ properties = answer.properties
97
+ assert_equal 2, properties.keys.length
98
+ assert_equal "foo.com", properties[:domain]
99
+ assert_equal 27, properties[:domain_id]
100
+ end
101
+
102
+ def test_property_supported?
89
103
  answer = @klass.new(nil, [])
90
- answer.parser.expects(:supported?).with(:disclaimer).returns(:value)
91
- assert_equal :value, answer.supported?(:disclaimer)
104
+ answer.parser.expects(:property_supported?).with(:disclaimer).returns(:value)
105
+ assert_equal :value, answer.property_supported?(:disclaimer)
92
106
  end
93
107
 
94
108
 
95
- Whois::Answer::Parser.registrable_methods.each do |method|
109
+ Whois::Answer::Parser.properties.each do |method|
96
110
  define_method "test_should_delegate_#{method}_to_parser" do
97
111
  answer = @klass.new(nil, [Whois::Answer::Part.new("", "whois.nic.it")])
98
112
  parser = answer.parser
data/test/client_test.rb CHANGED
@@ -1,29 +1,36 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class ClientTest < Test::Unit::TestCase
4
-
4
+
5
5
  def setup
6
6
  @client = Whois::Client.new
7
7
  end
8
-
9
-
8
+
9
+
10
10
  def test_initialize
11
11
  client = Whois::Client.new
12
12
  assert_instance_of Whois::Client, client
13
13
  end
14
-
14
+
15
15
  def test_initialize_with_timeout
16
16
  client = Whois::Client.new(:timeout => 100)
17
17
  assert_equal 100, client.timeout
18
18
  end
19
-
19
+
20
20
  def test_initialize_with_block
21
21
  Whois::Client.new do |client|
22
22
  assert_instance_of Whois::Client, client
23
23
  end
24
24
  end
25
-
26
-
25
+
26
+
27
+ def test_query_should_cast_qstring_to_string
28
+ server = Object.new
29
+ server.expects(:query).with("google.com")
30
+ Whois::Server.expects(:guess).with("google.com").returns(server)
31
+ @client.query(["google", ".", "com"])
32
+ end
33
+
27
34
  def test_query_with_email_address_should_raise
28
35
  assert_raise(Whois::ServerNotSupported) { @client.query("weppos@weppos.net") }
29
36
  end
@@ -32,13 +39,13 @@ class ClientTest < Test::Unit::TestCase
32
39
  error = assert_raise(Whois::NoInterfaceError) { @client.query("weppos.ad") }
33
40
  assert_match /no whois server/, error.message
34
41
  end
35
-
42
+
36
43
  def test_query_with_domain_with_web_whois
37
44
  error = assert_raise(Whois::WebInterfaceError) { @client.query("weppos.ar") }
38
45
  assert_match /no whois server/, error.message
39
46
  assert_match /www\.nic\.ar/, error.message
40
47
  end
41
-
48
+
42
49
  def test_query_with_timeout
43
50
  server = Class.new do
44
51
  def query(*args)
@@ -49,7 +56,7 @@ class ClientTest < Test::Unit::TestCase
49
56
  @client.timeout = 1
50
57
  assert_raise(Timeout::Error) { @client.query("foo.com") }
51
58
  end
52
-
59
+
53
60
  def test_query_with_unlimited_timeout
54
61
  server = Class.new do
55
62
  def query(*args)
@@ -60,7 +67,7 @@ class ClientTest < Test::Unit::TestCase
60
67
  @client.timeout = nil
61
68
  assert_nothing_raised { @client.query("foo.com") }
62
69
  end
63
-
70
+
64
71
  def test_query_within_timeout
65
72
  server = Class.new do
66
73
  def query(*args)
data/test/list_tld ADDED
@@ -0,0 +1,319 @@
1
+ tld;registry;available;unavailable
2
+ #Whois::Server.define :tld, ".br.com", "whois.centralnic.net"
3
+ #Whois::Server.define :tld, ".cn.com", "whois.centralnic.net"
4
+ #Whois::Server.define :tld, ".de.com", "whois.centralnic.net"
5
+ #Whois::Server.define :tld, ".eu.com", "whois.centralnic.net"
6
+ #Whois::Server.define :tld, ".gb.com", "whois.centralnic.net"
7
+ #Whois::Server.define :tld, ".gb.net", "whois.centralnic.net"
8
+ #Whois::Server.define :tld, ".hu.com", "whois.centralnic.net"
9
+ #Whois::Server.define :tld, ".no.com", "whois.centralnic.net"
10
+ #Whois::Server.define :tld, ".qc.com", "whois.centralnic.net"
11
+ #Whois::Server.define :tld, ".ru.com", "whois.centralnic.net"
12
+ #Whois::Server.define :tld, ".sa.com", "whois.centralnic.net"
13
+ #Whois::Server.define :tld, ".se.com", "whois.centralnic.net"
14
+ #Whois::Server.define :tld, ".se.net", "whois.centralnic.net"
15
+ #Whois::Server.define :tld, ".uk.com", "whois.centralnic.net"
16
+ #Whois::Server.define :tld, ".uk.net", "whois.centralnic.net"
17
+ #Whois::Server.define :tld, ".us.com", "whois.centralnic.net"
18
+ #Whois::Server.define :tld, ".uy.com", "whois.centralnic.net"
19
+ #Whois::Server.define :tld, ".za.com", "whois.centralnic.net"
20
+ #Whois::Server.define :tld, ".jpn.com", "whois.centralnic.net"
21
+ #Whois::Server.define :tld, ".web.com", "whois.centralnic.net"
22
+ com;whois.crsnic.net;google.com;u34jedzcq.com
23
+ za.net;whois.za.net;karnaugh.za.net;u34jedzcq.za.net
24
+ net;whois.crsnic.net;google.net;u34jedzcq.net
25
+ eu.org;whois.eu.org;google.eu.org;u34jedzcq.eu.org
26
+ za.org;whois.za.org;csa.za.org;u34jedzcq.za.org
27
+ org;whois.publicinterestregistry.net;google.org;u34jedzcq.org
28
+ edu;whois.educause.edu;google.edu;u34jedzcq.edu
29
+ gov;whois.nic.gov;gsa.gov;u34jedzcq.gov
30
+ int;whois.iana.org;nato.int;u34jedzcq.int
31
+ mil;;;
32
+ #Whois::Server.define :tld, ".e164.arpa", "whois.ripe.net"
33
+ #Whois::Server.define :tld, ".in-addr.arpa", nil
34
+ arpa;whois.iana.org;ip6.arpa;u34jedzcq.arpa
35
+ aero;whois.aero;srilankan.aero;u34jedzcq.aero
36
+ asia;whois.nic.asia;srilankan.aero;u34jedzcq.asia
37
+ #Whois::Server.define :tld, ".biz", "whois.nic.biz"
38
+ #Whois::Server.define :tld, ".cat", "whois.cat", {:adapter=>Whois::Server::Adapters::Formatted, :format => "-C US-ASCII ace %s"}
39
+ #Whois::Server.define :tld, ".coop", "whois.nic.coop"
40
+ info;whois.afilias.info;google.info;u34jedzcq.info
41
+ #Whois::Server.define :tld, ".jobs", "jobswhois.verisign-grs.com", {:adapter=>Whois::Server::Adapters::Verisign}
42
+ #Whois::Server.define :tld, ".mobi", "whois.dotmobiregistry.net"
43
+ #Whois::Server.define :tld, ".museum", "whois.museum"
44
+ name;whois.nicc.name;carletti.name;u34jedzcq.name
45
+ #Whois::Server.define :tld, ".pro", "whois.registrypro.pro"
46
+ #Whois::Server.define :tld, ".tel", "whois.nic.tel"
47
+ #Whois::Server.define :tld, ".travel", "whois.nic.travel"
48
+ #Whois::Server.define :tld, ".ac", "whois.nic.ac"
49
+ ad;;;
50
+ #Whois::Server.define :tld, ".ae", "whois.aeda.net.ae"
51
+ #Whois::Server.define :tld, ".af", "whois.nic.af"
52
+ #Whois::Server.define :tld, ".ag", "whois.nic.ag"
53
+ #Whois::Server.define :tld, ".ai", "whois.ai"
54
+ al;;;
55
+ #Whois::Server.define :tld, ".am", "whois.nic.am"
56
+ an;;;
57
+ ao;;;
58
+ aq;;;
59
+ ar;;;
60
+ #Whois::Server.define :tld, ".as", "whois.nic.as"
61
+ #Whois::Server.define :tld, ".at", "whois.nic.at"
62
+ #Whois::Server.define :tld, ".au", "whois.ausregistry.net.au"
63
+ aw;;;
64
+ ax;;;
65
+ az;;;
66
+ ba;;;
67
+ bb;;;
68
+ #Whois::Server.define :tld, ".bd", "www.whois.com.bd"
69
+ #Whois::Server.define :tld, ".be", "whois.dns.be"
70
+ bf;;;
71
+ #Whois::Server.define :tld, ".bg", "whois.register.bg"
72
+ bh;;;
73
+ bi;;;
74
+ #Whois::Server.define :tld, ".bj", "whois.nic.bj"
75
+ bm;;;
76
+ bn;;;
77
+ bo;;;
78
+ #Whois::Server.define :tld, ".br", "whois.nic.br"
79
+ bs;;;
80
+ bt;;;
81
+ bv;;;
82
+ by;;;
83
+ bw;;;
84
+ bz;whois.afilias-grs.info;google.bz;u34jedzcq.bz
85
+ #Whois::Server.define :tld, ".co.ca", "whois.co.ca"
86
+ #Whois::Server.define :tld, ".ca", "whois.cira.ca"
87
+ #Whois::Server.define :tld, ".cc", "whois.nic.cc", {:adapter=>Whois::Server::Adapters::Verisign}
88
+ #Whois::Server.define :tld, ".cd", "whois.nic.cd"
89
+ cf;;;
90
+ cg;;;
91
+ #Whois::Server.define :tld, ".ch", "whois.nic.ch"
92
+ #Whois::Server.define :tld, ".ci", "www.nic.ci"
93
+ #Whois::Server.define :tld, ".ck", "whois.nic.ck"
94
+ #Whois::Server.define :tld, ".cl", "whois.nic.cl"
95
+ cm;;;
96
+ #Whois::Server.define :tld, ".edu.cn", "whois.edu.cn"
97
+ #Whois::Server.define :tld, ".cn", "whois.cnnic.net.cn"
98
+ #Whois::Server.define :tld, ".uk.co", "whois.uk.co"
99
+ co;;;
100
+ cr;;;
101
+ cu;;;
102
+ cv;;;
103
+ #Whois::Server.define :tld, ".cx", "whois.nic.cx"
104
+ cy;;;
105
+ #Whois::Server.define :tld, ".cz", "whois.nic.cz"
106
+ de;whois.denic.de;google.de;u34jedzcq.de
107
+ #Whois::Server.define :tld, ".dj", "whois.domain.dj"
108
+ #Whois::Server.define :tld, ".dk", "whois.dk-hostmaster.dk"
109
+ #Whois::Server.define :tld, ".dm", "whois.nic.dm"
110
+ do;;;
111
+ dz;;;
112
+ #Whois::Server.define :tld, ".ec", "whois.nic.ec"
113
+ #Whois::Server.define :tld, ".ee", "whois.eenet.ee"
114
+ eg;;;
115
+ er;;;
116
+ es;;;
117
+ et;;;
118
+ #Whois::Server.define :tld, ".eu", "whois.eu"
119
+ #Whois::Server.define :tld, ".fi", "whois.ficora.fi"
120
+ #Whois::Server.define :tld, ".fj", "whois.usp.ac.fj"
121
+ fk;;;
122
+ fm;;;
123
+ #Whois::Server.define :tld, ".fo", "whois.ripe.net"
124
+ fr;whois.nic.fr;google.fr;u34jedzcq.fr
125
+ ga;;;
126
+ gb;;;
127
+ #Whois::Server.define :tld, ".gd", "whois.adamsnames.tc"
128
+ ge;;;
129
+ #Whois::Server.define :tld, ".gf", "whois.nplus.gf"
130
+ #Whois::Server.define :tld, ".gg", "whois.gg"
131
+ gh;;;
132
+ gi;whois.afilias-grs.info;sapphire.gi;u34jedzcq.gi
133
+ #Whois::Server.define :tld, ".gl", "whois.nic.gl"
134
+ #Whois::Server.define :tld, ".gm", "whois.ripe.net"
135
+ gn;;;
136
+ #Whois::Server.define :tld, ".gp", "whois.nic.gp"
137
+ gq;;;
138
+ gr;;;
139
+ #Whois::Server.define :tld, ".gs", "whois.nic.gs"
140
+ gt;;;
141
+ gu;;;
142
+ gw;;;
143
+ #Whois::Server.define :tld, ".gy", "whois.registry.gy"
144
+ #Whois::Server.define :tld, ".hk", "whois.hkdnr.net.hk"
145
+ #Whois::Server.define :tld, ".hm", "whois.registry.hm"
146
+ hn;whois.afilias-grs.info;google.hn;u34jedzcq.hn
147
+ hr;;;
148
+ #Whois::Server.define :tld, ".ht", "whois.nic.ht"
149
+ hu;whois.nic.hu;google.hu;u34jedzcq.hu
150
+ #Whois::Server.define :tld, ".id", "whois.idnic.net.id"
151
+ ie;whois.domainregistry.ie;google.ie;u34jedzcq.ie
152
+ #Whois::Server.define :tld, ".il", "whois.isoc.org.il"
153
+ #Whois::Server.define :tld, ".im", "whois.nic.im"
154
+ #Whois::Server.define :tld, ".in", "whois.registry.in"
155
+ #Whois::Server.define :tld, ".io", "whois.nic.io"
156
+ iq;;;
157
+ #Whois::Server.define :tld, ".ir", "whois.nic.ir"
158
+ #Whois::Server.define :tld, ".is", "whois.isnet.is"
159
+ it;whois.nic.it;google.it;u34jedzcq.it
160
+ #Whois::Server.define :tld, ".je", "whois.je"
161
+ jm;;;
162
+ jo;;;
163
+ #Whois::Server.define :tld, ".jp", "whois.jprs.jp"
164
+ #Whois::Server.define :tld, ".ke", "whois.kenic.or.ke"
165
+ #Whois::Server.define :tld, ".kg", "whois.domain.kg"
166
+ kh;;;
167
+ #Whois::Server.define :tld, ".ki", nil, {:web=>"http://www.ki/dns/", :adapter=>Whois::Server::Adapters::Web}
168
+ km;;;
169
+ kn;;;
170
+ #Whois::Server.define :tld, ".kp", "whois.kcce.kp"
171
+ #Whois::Server.define :tld, ".kr", "whois.nic.or.kr"
172
+ kw;;;
173
+ ky;;;
174
+ #Whois::Server.define :tld, ".kz", "whois.nic.kz"
175
+ #Whois::Server.define :tld, ".la", "whois.nic.la"
176
+ lb;;;
177
+ lc;whois.afilias-grs.info;nic.lc;u34jedzcq.lc
178
+ #Whois::Server.define :tld, ".lc", "whois.afilias-grs.info"
179
+ #Whois::Server.define :tld, ".li", "whois.nic.li"
180
+ #Whois::Server.define :tld, ".lk", "whois.nic.lk"
181
+ lr;;;
182
+ ls;;;
183
+ #Whois::Server.define :tld, ".lt", "whois.domreg.lt"
184
+ #Whois::Server.define :tld, ".lu", "whois.dns.lu"
185
+ #Whois::Server.define :tld, ".lv", "whois.nic.lv"
186
+ #Whois::Server.define :tld, ".ly", "whois.nic.ly"
187
+ #Whois::Server.define :tld, ".ma", "whois.iam.net.ma"
188
+ #Whois::Server.define :tld, ".mc", "whois.ripe.net"
189
+ #Whois::Server.define :tld, ".md", "whois.nic.md"
190
+ #Whois::Server.define :tld, ".me", "whois.meregistry.net"
191
+ #Whois::Server.define :tld, ".mg", "whois.nic.mg"
192
+ mh;;;
193
+ mk;;;
194
+ ml;;;
195
+ #Whois::Server.define :tld, ".mm", "whois.nic.mm"
196
+ mn;whois.afilias-grs.info;google.mn;u34jedzcq.mn
197
+ mo;;;
198
+ #Whois::Server.define :tld, ".mp", nil, {:adapter=>Whois::Server::Adapters::None}
199
+ #Whois::Server.define :tld, ".mq", "whois.nic.mq"
200
+ mr;;;
201
+ #Whois::Server.define :tld, ".ms", "whois.nic.ms"
202
+ mt;;;
203
+ #Whois::Server.define :tld, ".mu", "whois.nic.mu"
204
+ mv;;;
205
+ mw;;;
206
+ #Whois::Server.define :tld, ".mx", "whois.nic.mx"
207
+ #Whois::Server.define :tld, ".my", "whois.mynic.net.my"
208
+ mz;;;
209
+ #Whois::Server.define :tld, ".na", "whois.na-nic.com.na"
210
+ #Whois::Server.define :tld, ".nc", "whois.cctld.nc"
211
+ ne;;;
212
+ #Whois::Server.define :tld, ".nf", "whois.nic.nf"
213
+ #Whois::Server.define :tld, ".ng", "whois.register.net.ng"
214
+ ni;;;
215
+ #Whois::Server.define :tld, ".nl", "whois.domain-registry.nl"
216
+ #Whois::Server.define :tld, ".no", "whois.norid.no"
217
+ np;;;
218
+ nr;;;
219
+ #Whois::Server.define :tld, ".nu", "whois.nic.nu"
220
+ #Whois::Server.define :tld, ".nz", "whois.srs.net.nz"
221
+ om;;;
222
+ pa;;;
223
+ #Whois::Server.define :tld, ".pe", "whois.nic.pe"
224
+ pf;;;
225
+ pg;;;
226
+ ph;;;
227
+ pk;;;
228
+ #Whois::Server.define :tld, ".co.pl", "whois.co.pl"
229
+ #Whois::Server.define :tld, ".pl", "whois.dns.pl"
230
+ pm;whois.nic.fr;nic.pm;u34jedzcq.pm
231
+ pn;;;
232
+ #Whois::Server.define :tld, ".pr", "whois.nic.pr"
233
+ ps;;;
234
+ #Whois::Server.define :tld, ".pt", "whois.dns.pt"
235
+ #Whois::Server.define :tld, ".pw", "whois.nic.pw"
236
+ py;;;
237
+ qa;;;
238
+ re;whois.nic.fr;nic.re;u34jedzcq.re
239
+ #Whois::Server.define :tld, ".ro", "whois.rotld.ro"
240
+ rs;;;
241
+ #Whois::Server.define :tld, ".edu.ru", "whois.informika.ru"
242
+ #Whois::Server.define :tld, ".ru", "whois.ripn.net"
243
+ rw;;;
244
+ #Whois::Server.define :tld, ".sa", "saudinic.net.sa"
245
+ #Whois::Server.define :tld, ".sb", "whois.nic.net.sb"
246
+ #Whois::Server.define :tld, ".sc", "whois.afilias-grs.info"
247
+ sc;whois.afilias-grs.info;google.sc;u34jedzcq.sc
248
+ sd;;;
249
+ #Whois::Server.define :tld, ".se", "whois.nic-se.se"
250
+ #Whois::Server.define :tld, ".sg", "whois.nic.net.sg"
251
+ #Whois::Server.define :tld, ".sh", "whois.nic.sh"
252
+ #Whois::Server.define :tld, ".si", "whois.arnes.si"
253
+ sj;;;
254
+ #Whois::Server.define :tld, ".sk", "whois.sk-nic.sk"
255
+ #Whois::Server.define :tld, ".sl", "whois.nic.sl"
256
+ #Whois::Server.define :tld, ".sm", "whois.ripe.net"
257
+ #Whois::Server.define :tld, ".sn", "whois.nic.sn"
258
+ #Whois::Server.define :tld, ".so", nil, {:adapter=>Whois::Server::Adapters::None}
259
+ #Whois::Server.define :tld, ".sr", "whois.register.sr"
260
+ #Whois::Server.define :tld, ".st", "whois.nic.st"
261
+ #Whois::Server.define :tld, ".su", "whois.ripn.net"
262
+ sv;;;
263
+ sy;;;
264
+ sz;;;
265
+ #Whois::Server.define :tld, ".tc", "whois.adamsnames.tc"
266
+ td;;;
267
+ #Whois::Server.define :tld, ".tf", "whois.nic.tf"
268
+ tg;;;
269
+ #Whois::Server.define :tld, ".th", "whois.thnic.net"
270
+ #Whois::Server.define :tld, ".tj", "whois.nic.tj"
271
+ #Whois::Server.define :tld, ".tk", "whois.dot.tk"
272
+ #Whois::Server.define :tld, ".tl", "whois.nic.tl"
273
+ #Whois::Server.define :tld, ".tm", "whois.nic.tm"
274
+ tn;;;
275
+ #Whois::Server.define :tld, ".to", "whois.tonic.to"
276
+ #Whois::Server.define :tld, ".tp", "whois.nic.tp"
277
+ #Whois::Server.define :tld, ".tr", "whois.metu.edu.tr"
278
+ tt;;;
279
+ tv;whois.nic.tv;thinkcode.tv;u34jedzcq.tv
280
+ #Whois::Server.define :tld, ".tw", "whois.twnic.net"
281
+ tz;;;
282
+ #Whois::Server.define :tld, ".ua", "whois.net.ua"
283
+ #Whois::Server.define :tld, ".ug", "www.registry.co.ug"
284
+ #Whois::Server.define :tld, ".ac.uk", "whois.ja.net"
285
+ #Whois::Server.define :tld, ".bl.uk", nil, {:adapter=>Whois::Server::Adapters::None}
286
+ #Whois::Server.define :tld, ".british-library.uk", nil, {:adapter=>Whois::Server::Adapters::None}
287
+ #Whois::Server.define :tld, ".gov.uk", "whois.ja.net"
288
+ #Whois::Server.define :tld, ".icnet.uk", nil, {:adapter=>Whois::Server::Adapters::None}
289
+ #Whois::Server.define :tld, ".jet.uk", nil, {:adapter=>Whois::Server::Adapters::None}
290
+ #Whois::Server.define :tld, ".mod.uk", nil, {:adapter=>Whois::Server::Adapters::None}
291
+ #Whois::Server.define :tld, ".nhs.uk", nil, {:adapter=>Whois::Server::Adapters::None}
292
+ #Whois::Server.define :tld, ".nls.uk", nil, {:adapter=>Whois::Server::Adapters::None}
293
+ #Whois::Server.define :tld, ".parliament.uk", nil, {:adapter=>Whois::Server::Adapters::None}
294
+ #Whois::Server.define :tld, ".police.uk", nil, {:adapter=>Whois::Server::Adapters::None}
295
+ #Whois::Server.define :tld, ".uk", "whois.nic.uk"
296
+ #Whois::Server.define :tld, ".fed.us", "whois.nic.gov"
297
+ #Whois::Server.define :tld, ".us", "whois.nic.us"
298
+ #Whois::Server.define :tld, ".com.uy", nil, {:web=>"https://nic.anteldata.com.uy/dns/", :adapter=>Whois::Server::Adapters::Web}
299
+ #Whois::Server.define :tld, ".uy", "whois.nic.org.uy"
300
+ #Whois::Server.define :tld, ".uz", "whois.cctld.uz"
301
+ #Whois::Server.define :tld, ".va", "whois.ripe.net"
302
+ vc;whois.afilias-grs.info;google.vc;u34jedzcq.vc
303
+ #Whois::Server.define :tld, ".ve", "whois.nic.ve"
304
+ #Whois::Server.define :tld, ".vg", "whois.adamsnames.tc"
305
+ vi;;;
306
+ vn;;;
307
+ vu;;;
308
+ #Whois::Server.define :tld, ".wf", "whois.nic.wf"
309
+ #Whois::Server.define :tld, ".ws", "whois.samoanic.ws"
310
+ ye;;;
311
+ #Whois::Server.define :tld, ".yt", "whois.nic.yt"
312
+ yu;;;
313
+ #Whois::Server.define :tld, ".ac.za", "whois.ac.za"
314
+ #Whois::Server.define :tld, ".co.za", "whois.coza.net.za"
315
+ #Whois::Server.define :tld, ".gov.za", "whois.gov.za"
316
+ #Whois::Server.define :tld, ".org.za", nil, {:web=>"http://www.org.za/", :adapter=>Whois::Server::Adapters::Web}
317
+ za;;;
318
+ zm;;;
319
+ zw;;;