mlightner-universal_ruby_whois 1.2.6 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,9 @@
1
+ == 7/24/09
2
+ * Added support for .br domain names by Ruy Rocha
3
+
4
+ == 2/17/09
5
+ * Included enhancements for .co.nz domains as provided by Matt Thompson
6
+
1
7
  == 12/1/08
2
8
  * Included atourino's fix for .mobi domains.
3
9
  * Updated Rakefile to publish to RubyForge.
@@ -125,6 +125,20 @@ module Whois
125
125
  def to_s
126
126
  domain.to_s rescue nil
127
127
  end
128
+ def to_hash
129
+ {
130
+ :status => self.status,
131
+ :creation_date => self.creation_date,
132
+ :expiration_date => self.expiration_date,
133
+ :output => self.whois_output
134
+ }
135
+ end
136
+ def to_json
137
+ self.to_hash.to_json
138
+ end
139
+ def to_xml
140
+ self.to_hash.to_xml
141
+ end
128
142
  end
129
143
 
130
144
  end
@@ -13,10 +13,10 @@ module Whois
13
13
 
14
14
  # The default regular expressions used when defining a new server if none are supplied.
15
15
  DEFAULT_WHOIS_REGULAR_EXPRESSIONS = {
16
- :free => /(avail|free|no match|no entr|not taken|not registered|not found)/im,
17
- :registered => /(registered|Domain ID|domain name\s*\:|is active|is not available|exists|\bregistrant\b|Created on)/im,
18
- :creation_date => /(Creation date|created on|created at|Commencement Date|Registration Date)\s*[\:\.\]]*\s*([\w\-\:\ \/]+)[^\n\r]*[\n\r]/im,
19
- :expiration_date => /(expiration date|expires on|registered through|Renewal date)\s*[\:\.\]]*\s*([\w\-\:\ \/]+)[^\n\r]*[\n\r]/im,
16
+ :free => /(avail|free|no match|no entr|not taken|Available|Status\:\sNot\sRegistered|not registered|not found|No match for domain)/im,
17
+ :registered => /(registered|Domain ID|domain name\s*\:|is active|Status\:\sActive|Not available|is not available|exists|\bregistrant\b|Created on|created\:)/im,
18
+ :creation_date => /(Creation date|created on|created at|Commencement Date|Registration Date|domain_dateregistered|created\:)\s*[\:\.\]]*\s*([\w\-\:\ \/]+)[^\n\r]*[\n\r]/im,
19
+ :expiration_date => /(expiration date|expires on|registered through|Renewal date|domain_datebilleduntil|expires\:)\s*[\:\.\]]*\s*([\w\-\:\ \/]+)[^\n\r]*[\n\r]/im,
20
20
  :error => /(error)/im,
21
21
  :server_unavailable => /(Sorry\. Server busy\.|too many requests|been blocked)/im
22
22
  }
@@ -24,7 +24,7 @@ module Whois
24
24
  # The location of the 'whois' binary utility.
25
25
  WHOIS_BIN = '/usr/bin/env whois'
26
26
 
27
- attr_reader :tld, :nic_server, :regexes, :port, :unavailable, :unavailable_response
27
+ attr_reader :tld, :nic_server, :regexes, :port, :server_unavailable, :unavailable_response
28
28
 
29
29
  # === Whois Server Definition
30
30
  #
@@ -145,7 +145,7 @@ module Whois
145
145
  end
146
146
 
147
147
  def unavailable?
148
- @unavailable ? true : false
148
+ @server_unavailable ? true : false
149
149
  end
150
150
 
151
151
  # Retrieve the raw WHOIS server output for a domain.
@@ -243,4 +243,3 @@ module Whois
243
243
  end
244
244
 
245
245
  end
246
-
@@ -12,6 +12,7 @@ Whois::Server.define('at', 'whois.nic.at')
12
12
  Whois::Server.define('bg', 'whois.digsys.bg')
13
13
  Whois::Server.define('bi', 'whois.nic.bi')
14
14
  Whois::Server.define('bj', 'www.nic.bj')
15
+ Whois::Server.define('br', 'whois.nic.br')
15
16
  Whois::Server.define('bz', 'whois.belizenic.bz')
16
17
  Whois::Server.define('cc', 'whois.nic.cc')
17
18
  Whois::Server.define('cd', 'whois.nic.cd')
@@ -27,22 +28,22 @@ Whois::Server.define('hm', 'webhst1.capital.hm')
27
28
  Whois::Server.define('hu', 'whois.nic.hu')
28
29
  Whois::Server.define('id', 'whois.idnic.net.id')
29
30
  Whois::Server.define('in', 'whois.inregistry.net')
31
+ Whois::Server.define('io', 'whois.nic.io')
30
32
  Whois::Server.define('ir', 'whois.nic.ir')
31
33
  Whois::Server.define('kz', 'whois.nic.kz')
32
34
  Whois::Server.define('la', 'whois2.afilias-grs.net')
33
35
  Whois::Server.define('ly', 'whois.lydomains.com')
34
36
  Whois::Server.define('mc', 'whois.ripe.net')
35
- Whois::Server.define('ms', 'whois.ms')
37
+ Whois::Server.define('ms', 'whois.nic.ms')
36
38
  Whois::Server.define('mx', 'whois.nic.mx')
37
39
  Whois::Server.define('my', 'whois.mynic.net.my')
38
- Whois::Server.define('nu', 'whois.nic.nu')
39
40
  Whois::Server.define('pl', 'whois.dns.pl')
40
41
  Whois::Server.define('pm', 'whois.nic.pm')
41
42
  Whois::Server.define('pro', 'whois.registrypro.pro')
42
43
  Whois::Server.define('pt', 'whois.nic.pt')
43
44
  Whois::Server.define('sa', 'saudinic.net.sa')
44
45
  Whois::Server.define('sb', 'whois.nic.net.sb')
45
- Whois::Server.define('se', 'whois.nic-se.se')
46
+ Whois::Server.define('sh', 'whois.nic.sh')
46
47
  Whois::Server.define('si', 'whois.arnes.si')
47
48
  Whois::Server.define('sk', 'whois.sk-nic.sk')
48
49
  Whois::Server.define('sm', 'whois.ripe.net')
@@ -61,30 +62,31 @@ Whois::Server.define('wf', 'whois.nic.wf')
61
62
  Whois::Server.define('ws', 'whois.tld.ws')
62
63
  Whois::Server.define('yt', 'whois.nic.yt')
63
64
  Whois::Server.define('us', 'whois.nic.us')
64
- Whois::Server.define('at',"whois.nic.at")
65
- Whois::Server.define('ca',"whois.cira.ca")
66
- Whois::Server.define('cc',"whois.nic.cc")
67
- Whois::Server.define('ch',"whois.nic.ch")
68
- Whois::Server.define('cn',"whois.cnnic.net.cn")
69
- Whois::Server.define('cz',"whois.nic.cz")
70
- Whois::Server.define('ee',"whois.eenet.ee")
71
- Whois::Server.define('gr',"https://grweb.ics.forth.gr/")
72
- Whois::Server.define('it',"whois.nic.it")
73
- Whois::Server.define('li',"whois.nic.li")
74
- Whois::Server.define('lt',"whois.domreg.lt")
75
- Whois::Server.define('lu',"whois.dns.lu")
76
- Whois::Server.define('lv',"whois.ripe.net")
77
- Whois::Server.define('ms',"whois.adamsnames.tc")
78
- Whois::Server.define('co.nz',"whois.domainz.net.nz")
79
- Whois::Server.define('nu',"whois.nic.nu")
80
- Whois::Server.define('pl',"whois.dns.pl")
81
- Whois::Server.define('ro',"whois.rotld.ro")
82
- Whois::Server.define('ru',"whois.ripn.net")
83
- Whois::Server.define('se',"whois.nic-se.se")
84
- Whois::Server.define('sk',"whois.ripe.net")
85
- Whois::Server.define('tc',"whois.adamsnames.tc")
86
- Whois::Server.define('vg',"whois.adamsnames.tc")
87
- Whois::Server.define('ws',"whois.worldsite.ws")
65
+ Whois::Server.define('at', 'whois.nic.at')
66
+ Whois::Server.define('ca', 'whois.cira.ca')
67
+ Whois::Server.define('cc', 'whois.nic.cc')
68
+ Whois::Server.define('ch', 'whois.nic.ch')
69
+ Whois::Server.define('cn', 'whois.cnnic.net.cn')
70
+ Whois::Server.define('cz', 'whois.nic.cz')
71
+ Whois::Server.define('ee', 'whois.eenet.ee')
72
+ Whois::Server.define('gr', 'https://grweb.ics.forth.gr/')
73
+ Whois::Server.define('it', 'whois.nic.it')
74
+ Whois::Server.define('li', 'whois.nic.li')
75
+ Whois::Server.define('lt', 'whois.domreg.lt')
76
+ Whois::Server.define('lu', 'whois.dns.lu')
77
+ Whois::Server.define('lv', 'whois.ripe.net')
78
+ Whois::Server.define('ms', 'whois.adamsnames.tc')
79
+ Whois::Server.define('co.nz', 'whois.domainz.net.nz')
80
+ Whois::Server.define('nu', 'whois.nic.nu')
81
+ Whois::Server.define('pl', 'whois.dns.pl')
82
+ Whois::Server.define('ro', 'whois.rotld.ro')
83
+ Whois::Server.define('ru', 'whois.ripn.net')
84
+ Whois::Server.define('se', 'whois.iis.se')
85
+ Whois::Server.define('sk', 'whois.ripe.net')
86
+ Whois::Server.define('tc', 'whois.adamsnames.tc')
87
+ Whois::Server.define('vg', 'whois.adamsnames.tc')
88
+ Whois::Server.define('ws', 'whois.worldsite.ws')
89
+ Whois::Server.define('gd', 'whois.adamsnames.tc')
88
90
 
89
91
  #Whois::Server.define('es',"https://www.nic.es/esnic/servlet/BuscarDomSolAlta?dominio=%DOMAIN%")
90
92
  #Whois::Server.define('com.es',"https://www.nic.es/esnic/servlet/BuscarDomSolAlta?dominio=%DOMAIN%")
@@ -104,7 +106,6 @@ Whois::Server.define(
104
106
  :free => [%q{%DOMAIN% </a> </th> <td class="disp"> <img src="../images/icon_disp_yes.gif" alt="si" />}, 'im']
105
107
  )
106
108
 
107
-
108
109
  # By leaving out the whois server, we force it to follow the internic redirection.
109
110
  Whois::Server.define(
110
111
  [ 'com', 'net', 'edu' ], nil,
@@ -118,10 +119,13 @@ Whois::Server.define(
118
119
  :free => /Status:\s*Active/im.invert!
119
120
  )
120
121
 
121
- Whois::Server.define(%w(asn.au com.au id.au net.au org.au), 'whois.aunic.net',
122
+ Whois::Server.define(
123
+ %w(asn.au com.au id.au net.au org.au),
124
+ 'whois.ausregistry.net.au',
122
125
  :free => /No Data Found/im,
123
- :registered => /No Data Found/im.invert!,
124
- :error => /BLACKLISTED/m )
126
+ :registered => /Last Modified/im,
127
+ :error => /BLACKLISTED/m
128
+ )
125
129
 
126
130
  Whois::Server.define(
127
131
  %w(hk com.hk net.hk edu.hk org.hk gov.hk idv.hk),
@@ -177,9 +181,9 @@ Whois::Server.define(
177
181
  )
178
182
  Whois::Server.define(
179
183
  'eu',
180
- 'http://www.whois.eu/whois/GetDomainStatus.htm?domainName=%DOMAIN%',
181
- :free => /AVAILABLE/im,
182
- :registered => /REGISTERED/im,
184
+ 'whois.eu',
185
+ :free => /Nameservers\:/im.invert!,
186
+ :registered => /Nameservers\:/im,
183
187
  :pending => /APPLICATION PENDING/im,
184
188
  :error => /NOT ALLOWED/im
185
189
  )
@@ -193,23 +197,23 @@ Whois::Server.define(
193
197
  Whois::Server.define(
194
198
  'name',
195
199
  'whois.nic.name',
196
- :registered => /Not available for registration./im,
200
+ :registered => /Not available for second level registration./im,
197
201
  :preserved => /Not available for second level registration./im,
198
202
  :free => /No match./im
199
203
  )
200
- Whois::Server.define(
201
- 'net',
202
- 'whois.verisign-grs.com',
203
- :registered => /Domain Name:/im,
204
- :free => /No match for/im
205
- )
204
+ # Whois::Server.define(
205
+ # 'net',
206
+ # 'whois.verisign-grs.com',
207
+ # :registered => /Domain Name:/im,
208
+ # :free => /No match for/im
209
+ # )
206
210
  Whois::Server.define(
207
211
  'nl',
208
212
  'whois.domain-registry.nl',
209
- :registered => /ims active/im,
210
- :free => /ims free/im,
211
- :error => /imnvalid name/im,
212
- :preserved => /ims excluded/im
213
+ :registered => /active/im,
214
+ :free => /free/im,
215
+ :error => /invalid domain/im,
216
+ :preserved => /excluded/im
213
217
  )
214
218
  Whois::Server.define(
215
219
  'org',
@@ -247,9 +251,10 @@ Whois::Server.define(
247
251
  )
248
252
  Whois::Server.define(
249
253
  'mobi',
250
- 'whois.corenic.net',
251
- :registered => /Domain ID:/im,
252
- :free => /NOT FOUND/m
254
+ # 'whois.corenic.net',
255
+ 'whois.dotmobiregistry.net',
256
+ :registered => /is not registered/im.invert!,
257
+ :free => /is not registered/im
253
258
  )
254
259
  Whois::Server.define(
255
260
  'ca',
@@ -257,13 +262,38 @@ Whois::Server.define(
257
262
  :registered => /EXIST/im,
258
263
  :free => /AVAIL/im
259
264
  )
260
- Whois::Server.define('asia', 'whois.nic.asia',
265
+ Whois::Server.define(
266
+ 'asia',
267
+ 'whois.nic.asia',
261
268
  :registered => /Domain ID/im,
262
269
  :free => /NOT FOUND/im
263
270
  )
264
271
  Whois::Server.define(
265
- '.co.il',
266
- 'whois.isoc.org.il',
267
- :registered => /validity:/im,
268
- :free => /No data was found to match the request criteria./im
272
+ 'co.il',
273
+ 'whois.isoc.org.il',
274
+ :registered => /validity:/im,
275
+ :free => /No data was found to match the request criteria./im
276
+ )
277
+ Whois::Server.define(
278
+ 'ac.uk',
279
+ 'whois.ja.net',
280
+ :registered => /Domain:/im,
281
+ :free => /No such domain/im
282
+ )
283
+ Whois::Server.define(
284
+ %w(cx cm ht ki mu nf sb tl),
285
+ 'whois.nic.cx',
286
+ :registered => //im,
287
+ :free => /(Not Registered|No Applications Pending)/im
288
+ )Whois::Server.define(
289
+ %w(gd tc vg ms),
290
+ 'whois.adamsnames.tc',
291
+ :free => /is not registered/im,
292
+ :registered => /is registered/im
293
+ )
294
+ Whois::Server.define(
295
+ 'nu',
296
+ 'whois.nic.nu',
297
+ :free => /NO MATCH.*/,
298
+ :registered => /Domain Name/
269
299
  )
data/test/whois.rb CHANGED
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/../lib/universal_ruby_whois'
3
3
 
4
4
  class WhoisTest < Test::Unit::TestCase
5
5
 
6
- TEST_TLDS = %w(com org co.uk eu.com ru info jp)
6
+ TEST_TLDS = %w(com org co.uk eu.com ru info jp eu tc nu co.nz)
7
7
  REGISTERED_DOMAIN = "google"
8
8
  AVAILABLE_DOMAIN = "asdfasdfasdfcvr3rwsdc2e"
9
9
 
@@ -41,7 +41,7 @@ class WhoisTest < Test::Unit::TestCase
41
41
 
42
42
  def test_expiration_date
43
43
  domain = find_and_assert_domain("google.com")
44
- assert_equal Time.local(*ParseDate.parsedate("2011-09-13")), domain.expiration_date
44
+ assert_equal Time.local(*ParseDate.parsedate("2011-09-14")), domain.expiration_date
45
45
 
46
46
  TEST_TLDS.each do |tld|
47
47
  domain = find_and_assert_domain("#{REGISTERED_DOMAIN}.#{tld}")
@@ -50,6 +50,11 @@ class WhoisTest < Test::Unit::TestCase
50
50
  end
51
51
  end
52
52
 
53
+ def test_mobi_domain
54
+ domain = find_and_assert_domain("google.mobi")
55
+ assert domain.expiration_date_known?
56
+ end
57
+
53
58
  protected
54
59
 
55
60
  def find_and_assert_domain(domain)
@@ -1,5 +1,5 @@
1
1
  PKG_NAME = 'universal_ruby_whois'
2
- PKG_VERSION = '1.2.6'
2
+ PKG_VERSION = '1.2.7'
3
3
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
4
4
  RUBY_FORGE_PROJECT = 'universalwhois'
5
5
  RUBY_FORGE_USER = 'mlightner'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mlightner-universal_ruby_whois
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Lightner
@@ -9,11 +9,12 @@ autorequire: name
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-27 00:00:00 -07:00
12
+ date: 2009-05-16 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements: