mlightner-universal_ruby_whois 1.2.6 → 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
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: