whoaz 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +4 -0
- data/{LICENSE → LICENSE.txt} +1 -1
- data/README.md +5 -3
- data/Rakefile +2 -1
- data/bin/whoaz +1 -21
- data/lib/whoaz.rb +8 -4
- data/lib/whoaz/errors.rb +7 -1
- data/lib/whoaz/version.rb +1 -1
- data/lib/whoaz/whois.rb +70 -48
- data/spec/fixtures/free.html +9 -10
- data/spec/fixtures/organization.html +74 -48
- data/spec/fixtures/person.html +93 -52
- data/spec/spec_helper.rb +9 -0
- data/spec/whoaz/whois_spec.rb +38 -24
- data/whoaz.gemspec +4 -1
- metadata +42 -39
- data/lib/whoaz/ruby_ext.rb +0 -5
- data/spec/fixtures/less_than_3_chars.html +0 -147
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6505997becc000fc8ce2abf93bbfdef79dd5938f
|
4
|
+
data.tar.gz: df784db227599f5346db358d8fc2783f97cc690e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bca755e70f09d777516aab7b5048087d87bc6486b2a0a8292419590522cfd30c675ed18882e2c947105485e69bfa7b0bbe18965cf93c1aef7cf1c9e72a2a09db
|
7
|
+
data.tar.gz: da93add4bfa699a439853a503a6c1cde2cc140ff37474bfbe567250a51c1cebfb20ab06e15adbce17822645487ebd01f70a0374b3ec277f1dd1a67208e9be6c3
|
data/.travis.yml
ADDED
data/{LICENSE → LICENSE.txt}
RENAMED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Whoaz
|
1
|
+
# Whoaz [![Build Status](https://travis-ci.org/NARKOZ/whoaz.svg)](http://travis-ci.org/NARKOZ/whoaz)
|
2
2
|
|
3
3
|
Whoaz is a ruby gem that provides a nice way to interact with Whois.Az
|
4
4
|
|
@@ -13,7 +13,7 @@ gem install whoaz
|
|
13
13
|
Bundler:
|
14
14
|
|
15
15
|
```ruby
|
16
|
-
gem 'whoaz'
|
16
|
+
gem 'whoaz', '~> 2.0.0'
|
17
17
|
```
|
18
18
|
|
19
19
|
## Usage
|
@@ -32,6 +32,8 @@ whoaz.registered?
|
|
32
32
|
whoaz google.az
|
33
33
|
```
|
34
34
|
|
35
|
+
For more information see: [https://narkoz.github.io/whoaz](https://narkoz.github.io/whoaz)
|
36
|
+
|
35
37
|
## Copyright
|
36
38
|
|
37
|
-
Copyright (c) 2012 Nihad Abbasov
|
39
|
+
Released under the BSD 2-clause license. Copyright (c) 2012 Nihad Abbasov
|
data/Rakefile
CHANGED
@@ -3,7 +3,8 @@ require "bundler/gem_tasks"
|
|
3
3
|
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
RSpec::Core::RakeTask.new(:spec) do |spec|
|
6
|
-
spec.pattern
|
6
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
7
|
+
spec.rspec_opts = ['--color', '--format d']
|
7
8
|
end
|
8
9
|
|
9
10
|
task :default => :spec
|
data/bin/whoaz
CHANGED
@@ -40,24 +40,4 @@ rescue Whoaz::Error => e
|
|
40
40
|
end
|
41
41
|
|
42
42
|
puts "\nWhoaz Version #{Whoaz::VERSION}\n\n"
|
43
|
-
|
44
|
-
if query.free?
|
45
|
-
puts "Domain #{domain.upcase} is not registered.\n\n"
|
46
|
-
puts "NOTE: NOT REGISTERED DOMAIN IS NOT INDICATIVE OF THE AVAILABILITY OF A DOMAIN NAME."
|
47
|
-
exit
|
48
|
-
end
|
49
|
-
|
50
|
-
puts "Domain Name: #{domain.upcase}"
|
51
|
-
|
52
|
-
query.nameservers.each do |ns|
|
53
|
-
puts "Name Server: #{ns.upcase}"
|
54
|
-
end if query.nameservers
|
55
|
-
|
56
|
-
puts "\nRegistrant:"
|
57
|
-
puts " Organization: #{query.organization}" if query.organization
|
58
|
-
puts " Name: #{query.name}
|
59
|
-
Address: #{query.address}
|
60
|
-
Phone: #{query.phone}
|
61
|
-
Fax: #{query.fax}
|
62
|
-
Email: #{query.email}
|
63
|
-
"
|
43
|
+
puts "#{query.raw_domain_info}\n\n"
|
data/lib/whoaz.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'whoaz/version'
|
2
|
-
require 'whoaz/ruby_ext'
|
3
2
|
require 'whoaz/whois'
|
4
3
|
require 'whoaz/errors'
|
5
4
|
require 'net/http'
|
@@ -7,13 +6,18 @@ require 'nokogiri'
|
|
7
6
|
|
8
7
|
module Whoaz
|
9
8
|
WHOIS_URL = 'http://nic.az/cgi-bin/whois.cgi'
|
10
|
-
WHOIS_REFERER = 'http://nic.az'
|
11
|
-
MAIN_TLD = %w(az biz.az co.az com.az edu.az gov.az info.az int.az mil.az name.az net.az org.az pp.az)
|
9
|
+
WHOIS_REFERER = 'http://nic.az' # The URL to the WHOIS server. It's the same as <tt>http://whois.az</tt>.
|
10
|
+
MAIN_TLD = %w(az biz.az co.az com.az edu.az gov.az info.az int.az mil.az name.az net.az org.az pp.az pro.az)
|
12
11
|
REGIONAL_TLD = %w(bilesuvar.az ganja.az imishli.az samux.az shamaxi.az shusha.az sumgait.az zaqatala.az)
|
13
12
|
|
13
|
+
# Creates a new Whois object.
|
14
|
+
#
|
15
|
+
# @param [String] domain The domain name required to query.
|
16
|
+
# @return [Whoaz::Whois]
|
14
17
|
def self.whois(domain='')
|
15
18
|
domain = domain.to_s.strip.downcase
|
16
|
-
raise EmptyDomain, "Domain not specified" if domain.empty?
|
19
|
+
raise EmptyDomain, "Domain name is not specified" if domain.empty?
|
20
|
+
raise InvalidDomain, "Domain name contains non-ASCII characters" if domain =~ /[^\x00-\x7f]/
|
17
21
|
Whoaz::Whois.new(domain)
|
18
22
|
end
|
19
23
|
end
|
data/lib/whoaz/errors.rb
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
module Whoaz
|
2
|
+
# Custom error class for rescuing from all Whoaz errors.
|
2
3
|
class Error < StandardError; end
|
4
|
+
|
5
|
+
# Raised when domain name is not passed.
|
3
6
|
class EmptyDomain < Error; end
|
7
|
+
|
8
|
+
# Raised when invalid domain name is passed.
|
4
9
|
class InvalidDomain < Error; end
|
10
|
+
|
11
|
+
# Raised when WHOIS server doesn't return the HTTP status code 200 (OK).
|
5
12
|
class ServerError < Error; end
|
6
|
-
class DomainNameError < Error; end
|
7
13
|
end
|
data/lib/whoaz/version.rb
CHANGED
data/lib/whoaz/whois.rb
CHANGED
@@ -1,66 +1,88 @@
|
|
1
1
|
module Whoaz
|
2
2
|
class Whois
|
3
|
-
|
3
|
+
# @return [String] The queried domain name.
|
4
|
+
attr_reader :domain
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
raise InvalidDomain, "Invalid domain specified" unless
|
8
|
-
[MAIN_TLD, REGIONAL_TLD].any? {|a| a.include? post_domain.last}
|
6
|
+
# @return [String] The name of the registrant.
|
7
|
+
attr_reader :name
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
req.set_form_data('lang' => 'en', 'domain' => post_domain.first, 'dom' => ".#{post_domain.last}")
|
13
|
-
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req)}
|
9
|
+
# @return [String] The organization of the registrant.
|
10
|
+
attr_reader :organization
|
14
11
|
|
15
|
-
|
16
|
-
|
17
|
-
else
|
18
|
-
raise ServerError, "Server responded with code #{res.code}"
|
19
|
-
end
|
12
|
+
# @return [String] The address of the registrant.
|
13
|
+
attr_reader :address
|
20
14
|
|
21
|
-
|
22
|
-
|
23
|
-
end
|
15
|
+
# @return [String] The phone of the registrant.
|
16
|
+
attr_reader :phone
|
24
17
|
|
25
|
-
|
26
|
-
|
27
|
-
try(:text).try(:strip) == 'Using of domain names contains less than 3 symbols is not allowed'
|
28
|
-
raise DomainNameError, "Whois query for this domain name is not supported."
|
29
|
-
end
|
30
|
-
end
|
18
|
+
# @return [String] The fax of the registrant.
|
19
|
+
attr_reader :fax
|
31
20
|
|
32
|
-
|
33
|
-
|
34
|
-
@name = registrant.at_xpath('td[2]/table/tr[2]/td[2]').try(:text)
|
35
|
-
@address = registrant.at_xpath('td[3]/table/tr[1]/td[2]').try(:text)
|
36
|
-
@phone = registrant.at_xpath('td[3]/table/tr[2]/td[2]').try(:text)
|
37
|
-
@fax = registrant.at_xpath('td[3]/table/tr[3]/td[2]').try(:text)
|
38
|
-
@email = registrant.at_xpath('td[3]/table/tr[4]/td[2]').try(:text)
|
39
|
-
end
|
21
|
+
# @return [String] The email of the registrant.
|
22
|
+
attr_reader :email
|
40
23
|
|
41
|
-
|
42
|
-
|
43
|
-
nameserver.at_xpath('tr[2]/td[2]').try(:text),
|
44
|
-
nameserver.at_xpath('tr[3]/td[2]').try(:text),
|
45
|
-
nameserver.at_xpath('tr[4]/td[2]').try(:text),
|
46
|
-
nameserver.at_xpath('tr[5]/td[2]').try(:text),
|
47
|
-
nameserver.at_xpath('tr[6]/td[2]').try(:text),
|
48
|
-
nameserver.at_xpath('tr[7]/td[2]').try(:text),
|
49
|
-
nameserver.at_xpath('tr[8]/td[2]').try(:text),
|
50
|
-
nameserver.at_xpath('tr[9]/td[2]').try(:text)
|
51
|
-
]
|
52
|
-
end
|
24
|
+
# @return [Array] An array of nameservers.
|
25
|
+
attr_reader :nameservers
|
53
26
|
|
54
|
-
|
55
|
-
|
56
|
-
|
27
|
+
# @return [Boolean] Availability of the domain.
|
28
|
+
attr_reader :free
|
29
|
+
alias_method :free?, :free
|
30
|
+
alias_method :available?, :free?
|
31
|
+
|
32
|
+
# Initializes a new Whois object.
|
33
|
+
#
|
34
|
+
# @param [String] domain The domain name required to query.
|
35
|
+
# @return [Whoaz::Whois]
|
36
|
+
def initialize(domain)
|
37
|
+
@domain = domain
|
57
38
|
|
58
|
-
|
59
|
-
|
39
|
+
if raw_domain_info.include?('is not exists') || raw_domain_info.include?('cannot be registered')
|
40
|
+
@free = true
|
41
|
+
else
|
42
|
+
@free = false
|
43
|
+
domain_info = raw_domain_info.split("\n")
|
44
|
+
@nameservers = domain_info[3].sub('Name Servers:', '').strip.split(',')
|
45
|
+
@organization = domain_info[16].sub('Organisation:', '').strip
|
46
|
+
@name = domain_info[17].sub('Name:', '').strip
|
47
|
+
@address = domain_info[19..23].join("\n").strip
|
48
|
+
@phone = domain_info[12].sub('Voice phone:', '').strip
|
49
|
+
@fax = domain_info[13].sub('Fax:', '').strip
|
50
|
+
@email = domain_info[11].sub('Email:', '').strip
|
51
|
+
end
|
60
52
|
end
|
61
53
|
|
54
|
+
# Checks if the domain name is registered or not.
|
55
|
+
#
|
56
|
+
# @return [Boolean]
|
62
57
|
def registered?
|
63
58
|
!free?
|
64
59
|
end
|
60
|
+
|
61
|
+
# Returns raw domain info as responded by WHOIS server.
|
62
|
+
#
|
63
|
+
# @return [String]
|
64
|
+
def raw_domain_info
|
65
|
+
@raw_domain_info ||= query
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def query
|
71
|
+
post_domain = @domain.split('.', 2)
|
72
|
+
raise InvalidDomain, "Invalid domain name is specified" unless
|
73
|
+
(MAIN_TLD + REGIONAL_TLD).include? post_domain.last
|
74
|
+
|
75
|
+
url = URI WHOIS_URL
|
76
|
+
req = Net::HTTP::Post.new(url.path, 'Referer' => WHOIS_REFERER)
|
77
|
+
req.set_form_data(lang: 'en', domain: post_domain.first, dom: ".#{post_domain.last}")
|
78
|
+
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req)}
|
79
|
+
|
80
|
+
if res.code.to_i == 200
|
81
|
+
page = Nokogiri::HTML res.body
|
82
|
+
page.at_xpath('//table[4]/tr/td[2]/table[2]/td[1]/pre').text.strip
|
83
|
+
else
|
84
|
+
raise ServerError, "WHOIS server responded with status code #{res.code}"
|
85
|
+
end
|
86
|
+
end
|
65
87
|
end
|
66
88
|
end
|
data/spec/fixtures/free.html
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
3
|
<html>
|
3
4
|
<head>
|
@@ -74,7 +75,6 @@
|
|
74
75
|
<option value='.co.az'>.co.az</option>
|
75
76
|
<option value='.net.az'>.net.az</option>
|
76
77
|
<option value='.int.az'>.int.az</option>
|
77
|
-
<option value='.gov.az'>.gov.az</option>
|
78
78
|
<option value='.biz.az'>.biz.az</option>
|
79
79
|
<option value='.org.az'>.org.az</option>
|
80
80
|
<option value='.edu.az'>.edu.az</option>
|
@@ -91,10 +91,10 @@
|
|
91
91
|
<td background="/imgs/vline.gif" valign="top">
|
92
92
|
<table width="100%" border="0" cellspacing="0" cellpadding="10">
|
93
93
|
<tr>
|
94
|
-
<td>Do
|
94
|
+
<td>Do an easy search below for your desired domain name, to check
|
95
95
|
for its availability before you proceed to register. <br>
|
96
96
|
You can find info about the following domains : <br>
|
97
|
-
az, com.az, net.az, int.az,
|
97
|
+
az, com.az, net.az, int.az, org.az, .edu.az, .info.az,
|
98
98
|
.pp.az, .mil.az, .name.az and biz.az.</td>
|
99
99
|
</tr>
|
100
100
|
</table>
|
@@ -112,12 +112,11 @@
|
|
112
112
|
<td colspan="6" bgcolor="#D9D5D1"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
113
113
|
</tr>
|
114
114
|
<td colspan="5" valign="top">
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
115
|
+
|
116
|
+
<pre>
|
117
|
+
Domain 404.AZ is not exists
|
118
|
+
|
119
|
+
</pre>
|
121
120
|
<img src="/imgs/dot.gif" width="14" height="1">
|
122
121
|
</td>
|
123
122
|
<td><img src="/imgs/dot.gif" width="14" height="1"></td>
|
@@ -128,7 +127,7 @@
|
|
128
127
|
<td colspan="2" bgcolor="#999999"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
129
128
|
</tr> <tr>
|
130
129
|
<td valign="top" background="/imgs/bgbot.jpg"><img src="/imgs/who.gif" width="29" height="146"></td>
|
131
|
-
<td align="center" valign="middle" background="/imgs/bgbot.jpg"
|
130
|
+
<td align="center" valign="middle" background="/imgs/bgbot.jpg"></td>
|
132
131
|
</tr>
|
133
132
|
<tr>
|
134
133
|
<td colspan="2" bgcolor="#999999"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
3
|
<html>
|
3
4
|
<head>
|
@@ -74,7 +75,6 @@
|
|
74
75
|
<option value='.co.az'>.co.az</option>
|
75
76
|
<option value='.net.az'>.net.az</option>
|
76
77
|
<option value='.int.az'>.int.az</option>
|
77
|
-
<option value='.gov.az'>.gov.az</option>
|
78
78
|
<option value='.biz.az'>.biz.az</option>
|
79
79
|
<option value='.org.az'>.org.az</option>
|
80
80
|
<option value='.edu.az'>.edu.az</option>
|
@@ -91,10 +91,10 @@
|
|
91
91
|
<td background="/imgs/vline.gif" valign="top">
|
92
92
|
<table width="100%" border="0" cellspacing="0" cellpadding="10">
|
93
93
|
<tr>
|
94
|
-
<td>Do
|
94
|
+
<td>Do an easy search below for your desired domain name, to check
|
95
95
|
for its availability before you proceed to register. <br>
|
96
96
|
You can find info about the following domains : <br>
|
97
|
-
az, com.az, net.az, int.az,
|
97
|
+
az, com.az, net.az, int.az, org.az, .edu.az, .info.az,
|
98
98
|
.pp.az, .mil.az, .name.az and biz.az.</td>
|
99
99
|
</tr>
|
100
100
|
</table>
|
@@ -112,50 +112,76 @@
|
|
112
112
|
<td colspan="6" bgcolor="#D9D5D1"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
113
113
|
</tr>
|
114
114
|
<td colspan="5" valign="top">
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
115
|
+
|
116
|
+
<pre>
|
117
|
+
|
118
|
+
|
119
|
+
Info for domain GOOGLE.AZ
|
120
|
+
|
121
|
+
Status:
|
122
|
+
Name Servers: NS1.GOOGLE.COM,NS2.GOOGLE.COM
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
Type: Registrant Admin contact
|
129
|
+
Status: ok
|
130
|
+
Email: dns-admin@google.com
|
131
|
+
Voice phone: +16503300100
|
132
|
+
Fax: +16506188571
|
133
|
+
|
134
|
+
International info:
|
135
|
+
Organisation: Google Inc.
|
136
|
+
Name: Admin,
|
137
|
+
Address:
|
138
|
+
Country Code: US
|
139
|
+
Province: CA
|
140
|
+
City: Mountain View
|
141
|
+
Street addr: 1600 Amphitheatre Parkway
|
142
|
+
Postal code: 94043
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
Type: Tech contact
|
148
|
+
Status: ok
|
149
|
+
Email: dns-admin@google.com
|
150
|
+
Voice phone: +16503300100
|
151
|
+
Fax: +16506188571
|
152
|
+
|
153
|
+
International info:
|
154
|
+
Organisation: Google Inc.
|
155
|
+
Name: Admin,
|
156
|
+
Address:
|
157
|
+
Country Code: US
|
158
|
+
Province: CA
|
159
|
+
City: Mountain View
|
160
|
+
Street addr: 1600 Amphitheatre Parkway
|
161
|
+
Postal code: 94043
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
Type: Billing contact
|
167
|
+
Status: ok
|
168
|
+
Email: ccops@markmonitor.com
|
169
|
+
Voice phone: +12083895740
|
170
|
+
Fax: +12083895799
|
171
|
+
|
172
|
+
International info:
|
173
|
+
Organisation: MarkMonitor
|
174
|
+
Name: Kevin Pearl,
|
175
|
+
Address:
|
176
|
+
Country Code: US
|
177
|
+
Province: ID
|
178
|
+
City: Boise
|
179
|
+
Street addr: 10400 OVerland Rd. PMB 155
|
180
|
+
Postal code: 83709
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
</pre>
|
159
185
|
<img src="/imgs/dot.gif" width="14" height="1">
|
160
186
|
</td>
|
161
187
|
<td><img src="/imgs/dot.gif" width="14" height="1"></td>
|
@@ -166,7 +192,7 @@
|
|
166
192
|
<td colspan="2" bgcolor="#999999"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
167
193
|
</tr> <tr>
|
168
194
|
<td valign="top" background="/imgs/bgbot.jpg"><img src="/imgs/who.gif" width="29" height="146"></td>
|
169
|
-
<td align="center" valign="middle" background="/imgs/bgbot.jpg"
|
195
|
+
<td align="center" valign="middle" background="/imgs/bgbot.jpg"></td>
|
170
196
|
</tr>
|
171
197
|
<tr>
|
172
198
|
<td colspan="2" bgcolor="#999999"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
data/spec/fixtures/person.html
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
3
|
<html>
|
3
4
|
<head>
|
@@ -74,7 +75,6 @@
|
|
74
75
|
<option value='.co.az'>.co.az</option>
|
75
76
|
<option value='.net.az'>.net.az</option>
|
76
77
|
<option value='.int.az'>.int.az</option>
|
77
|
-
<option value='.gov.az'>.gov.az</option>
|
78
78
|
<option value='.biz.az'>.biz.az</option>
|
79
79
|
<option value='.org.az'>.org.az</option>
|
80
80
|
<option value='.edu.az'>.edu.az</option>
|
@@ -91,10 +91,10 @@
|
|
91
91
|
<td background="/imgs/vline.gif" valign="top">
|
92
92
|
<table width="100%" border="0" cellspacing="0" cellpadding="10">
|
93
93
|
<tr>
|
94
|
-
<td>Do
|
94
|
+
<td>Do an easy search below for your desired domain name, to check
|
95
95
|
for its availability before you proceed to register. <br>
|
96
96
|
You can find info about the following domains : <br>
|
97
|
-
az, com.az, net.az, int.az,
|
97
|
+
az, com.az, net.az, int.az, org.az, .edu.az, .info.az,
|
98
98
|
.pp.az, .mil.az, .name.az and biz.az.</td>
|
99
99
|
</tr>
|
100
100
|
</table>
|
@@ -112,54 +112,95 @@
|
|
112
112
|
<td colspan="6" bgcolor="#D9D5D1"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
113
113
|
</tr>
|
114
114
|
<td colspan="5" valign="top">
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
115
|
+
|
116
|
+
<pre>
|
117
|
+
|
118
|
+
|
119
|
+
Info for domain JOHNSMITH.AZ
|
120
|
+
|
121
|
+
Status:
|
122
|
+
Name Servers: S.NS.EXAMPLE.NET,M.NS.EXAMPLE.NET,I.NS.EXAMPLE.NET,T.NS.EXAMPLE.NET,H.NS.EXAMPLE.NET
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
Type: Registrant
|
129
|
+
Status: ok
|
130
|
+
Email: john.smith@example.com
|
131
|
+
Voice phone: +123000000000
|
132
|
+
Fax: +123.0
|
133
|
+
|
134
|
+
International info:
|
135
|
+
Organisation:
|
136
|
+
Name: John Smith
|
137
|
+
Address:
|
138
|
+
Country Code: UK
|
139
|
+
Province: UK1000
|
140
|
+
City: London
|
141
|
+
Street addr: 221B Baker Street
|
142
|
+
Postal code: UK1000
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
Type: Admin contact
|
148
|
+
Status: ok
|
149
|
+
Email: john.smith@example.com
|
150
|
+
Voice phone: +123000000000
|
151
|
+
Fax: +123.0
|
152
|
+
|
153
|
+
International info:
|
154
|
+
Organisation:
|
155
|
+
Name: John Smith
|
156
|
+
Address:
|
157
|
+
Country Code: UK
|
158
|
+
Province:
|
159
|
+
City: Baku
|
160
|
+
Street addr: NO ADDRESS
|
161
|
+
Postal code:
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
Type: Tech contact
|
167
|
+
Status: ok
|
168
|
+
Email: john.smith@example.com
|
169
|
+
Voice phone: +123000000000
|
170
|
+
Fax: +123.0
|
171
|
+
|
172
|
+
International info:
|
173
|
+
Organisation:
|
174
|
+
Name: John Smith
|
175
|
+
Address:
|
176
|
+
Country Code: UK
|
177
|
+
Province:
|
178
|
+
City: Baku
|
179
|
+
Street addr: NO ADDRESS
|
180
|
+
Postal code:
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
Type: Billing contact
|
186
|
+
Status: ok
|
187
|
+
Email: john.smith@example.com
|
188
|
+
Voice phone: +123000000000
|
189
|
+
Fax: +123.0
|
190
|
+
|
191
|
+
International info:
|
192
|
+
Organisation:
|
193
|
+
Name: John Smith
|
194
|
+
Address:
|
195
|
+
Country Code: UK
|
196
|
+
Province:
|
197
|
+
City: Baku
|
198
|
+
Street addr: NO ADDRESS
|
199
|
+
Postal code:
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
</pre>
|
163
204
|
<img src="/imgs/dot.gif" width="14" height="1">
|
164
205
|
</td>
|
165
206
|
<td><img src="/imgs/dot.gif" width="14" height="1"></td>
|
@@ -170,7 +211,7 @@
|
|
170
211
|
<td colspan="2" bgcolor="#999999"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
171
212
|
</tr> <tr>
|
172
213
|
<td valign="top" background="/imgs/bgbot.jpg"><img src="/imgs/who.gif" width="29" height="146"></td>
|
173
|
-
<td align="center" valign="middle" background="/imgs/bgbot.jpg"
|
214
|
+
<td align="center" valign="middle" background="/imgs/bgbot.jpg"></td>
|
174
215
|
</tr>
|
175
216
|
<tr>
|
176
217
|
<td colspan="2" bgcolor="#999999"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
data/spec/spec_helper.rb
CHANGED
@@ -4,6 +4,15 @@ require 'whoaz'
|
|
4
4
|
|
5
5
|
FakeWeb.allow_net_connect = false
|
6
6
|
|
7
|
+
# Patch for Ruby >= 2.2
|
8
|
+
# https://github.com/chrisk/fakeweb/pull/59
|
9
|
+
module FakeWeb
|
10
|
+
class StubSocket
|
11
|
+
def close
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
7
16
|
def load_fixture(name)
|
8
17
|
File.open(File.dirname(__FILE__) + "/fixtures/#{name}.html").read
|
9
18
|
end
|
data/spec/whoaz/whois_spec.rb
CHANGED
@@ -1,25 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Whoaz::Whois do
|
4
|
-
it { Whoaz.
|
4
|
+
it { expect(Whoaz).to respond_to :whois }
|
5
5
|
|
6
6
|
describe "empty domain query" do
|
7
7
|
it "should raise EmptyDomain" do
|
8
|
-
expect { Whoaz.whois }.to raise_error Whoaz::EmptyDomain, 'Domain not specified'
|
8
|
+
expect { Whoaz.whois }.to raise_error Whoaz::EmptyDomain, 'Domain name is not specified'
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
describe "invalid domain query" do
|
13
13
|
it "should raise InvalidDomain" do
|
14
|
-
expect { Whoaz.whois 'google' }.to raise_error Whoaz::InvalidDomain, 'Invalid domain specified'
|
15
|
-
expect { Whoaz.whois 'goo.gl' }.to raise_error Whoaz::InvalidDomain, 'Invalid domain specified'
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
describe "less than 3 characters long domain query" do
|
20
|
-
it "should raise DomainNameError" do
|
21
|
-
fake_url Whoaz::WHOIS_URL, 'less_than_3_chars', {:domain => 'i', :dom => '.az'}
|
22
|
-
expect { Whoaz.whois 'i.az' }.to raise_error Whoaz::DomainNameError, 'Whois query for this domain name is not supported.'
|
14
|
+
expect { Whoaz.whois 'google' }.to raise_error Whoaz::InvalidDomain, 'Invalid domain name is specified'
|
15
|
+
expect { Whoaz.whois 'goo.gl' }.to raise_error Whoaz::InvalidDomain, 'Invalid domain name is specified'
|
16
|
+
expect { Whoaz.whois 'алм.az' }.to raise_error Whoaz::InvalidDomain, 'Domain name contains non-ASCII characters'
|
23
17
|
end
|
24
18
|
end
|
25
19
|
|
@@ -28,11 +22,15 @@ describe Whoaz::Whois do
|
|
28
22
|
before { fake_url Whoaz::WHOIS_URL, 'organization', {:domain => 'google', :dom => '.az'} }
|
29
23
|
|
30
24
|
describe "#free?" do
|
31
|
-
specify { Whoaz.whois('google.az').free
|
25
|
+
specify { expect(Whoaz.whois('google.az').free?).to be false }
|
32
26
|
end
|
33
27
|
|
34
28
|
describe "#registered?" do
|
35
|
-
specify { Whoaz.whois('google.az').registered
|
29
|
+
specify { expect(Whoaz.whois('google.az').registered?).to be true }
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#available?" do
|
33
|
+
specify { expect(Whoaz.whois('google.az').available?).to be false }
|
36
34
|
end
|
37
35
|
end
|
38
36
|
|
@@ -40,11 +38,15 @@ describe Whoaz::Whois do
|
|
40
38
|
before { fake_url Whoaz::WHOIS_URL, 'free', {:domain => '404', :dom => '.az'} }
|
41
39
|
|
42
40
|
describe "#free?" do
|
43
|
-
specify { Whoaz.whois('google.az').free
|
41
|
+
specify { expect(Whoaz.whois('google.az').free?).to be true }
|
44
42
|
end
|
45
43
|
|
46
44
|
describe "#registered?" do
|
47
|
-
specify { Whoaz.whois('404.az').registered
|
45
|
+
specify { expect(Whoaz.whois('404.az').registered?).to be false }
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#available?" do
|
49
|
+
specify { expect(Whoaz.whois('google.az').available?).to be true }
|
48
50
|
end
|
49
51
|
end
|
50
52
|
end
|
@@ -54,13 +56,19 @@ describe Whoaz::Whois do
|
|
54
56
|
before { fake_url Whoaz::WHOIS_URL, 'person', {:domain => 'johnsmith', :dom => '.az'} }
|
55
57
|
subject { Whoaz.whois 'johnsmith.az' }
|
56
58
|
|
59
|
+
describe "#domain" do
|
60
|
+
it "should return a domain name" do
|
61
|
+
expect(subject.domain).to eq('johnsmith.az')
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
57
65
|
describe "#organization" do
|
58
|
-
specify { subject.organization.
|
66
|
+
specify { expect(subject.organization).to eq('') }
|
59
67
|
end
|
60
68
|
|
61
69
|
describe "#name" do
|
62
70
|
it "should return a registrant name" do
|
63
|
-
subject.name.
|
71
|
+
expect(subject.name).to eq('John Smith')
|
64
72
|
end
|
65
73
|
end
|
66
74
|
end
|
@@ -69,45 +77,51 @@ describe Whoaz::Whois do
|
|
69
77
|
before { fake_url Whoaz::WHOIS_URL, 'organization', {:domain => 'google', :dom => '.az'} }
|
70
78
|
subject { Whoaz.whois 'google.az' }
|
71
79
|
|
80
|
+
describe "#domain" do
|
81
|
+
it "should return a domain name" do
|
82
|
+
expect(subject.domain).to eq('google.az')
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
72
86
|
describe "#organization" do
|
73
87
|
it "should return a registrant organization" do
|
74
|
-
subject.organization.
|
88
|
+
expect(subject.organization).to eq('Google Inc.')
|
75
89
|
end
|
76
90
|
end
|
77
91
|
|
78
92
|
describe "#name" do
|
79
93
|
it "should return a registrant name" do
|
80
|
-
subject.name.
|
94
|
+
expect(subject.name).to eq('Admin,')
|
81
95
|
end
|
82
96
|
end
|
83
97
|
|
84
98
|
describe "#address" do
|
85
99
|
it "should return a registrant address" do
|
86
|
-
subject.address.
|
100
|
+
expect(subject.address).to eq("Country Code: US\n Province: CA\n City: Mountain View\n Street addr: 1600 Amphitheatre Parkway\n Postal code: 94043")
|
87
101
|
end
|
88
102
|
end
|
89
103
|
|
90
104
|
describe "#phone" do
|
91
105
|
it "should return a registrant phone" do
|
92
|
-
subject.phone.
|
106
|
+
expect(subject.phone).to eq('+16503300100')
|
93
107
|
end
|
94
108
|
end
|
95
109
|
|
96
110
|
describe "#fax" do
|
97
111
|
it "should return a registrant fax" do
|
98
|
-
subject.fax.
|
112
|
+
expect(subject.fax).to eq('+16506188571')
|
99
113
|
end
|
100
114
|
end
|
101
115
|
|
102
116
|
describe "#email" do
|
103
117
|
it "should return a registrant email" do
|
104
|
-
subject.email.
|
118
|
+
expect(subject.email).to eq('dns-admin@google.com')
|
105
119
|
end
|
106
120
|
end
|
107
121
|
|
108
122
|
describe "#nameservers" do
|
109
123
|
it "should return domain nameservers" do
|
110
|
-
subject.nameservers.
|
124
|
+
expect(subject.nameservers).to eq(["NS1.GOOGLE.COM", "NS2.GOOGLE.COM"])
|
111
125
|
end
|
112
126
|
end
|
113
127
|
end
|
data/whoaz.gemspec
CHANGED
@@ -6,7 +6,8 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.email = ["mail@narkoz.me"]
|
7
7
|
gem.description = %q{A gem that provides a nice way to interact with Whois.Az}
|
8
8
|
gem.summary = %q{Gets domain whois information from Whois.Az}
|
9
|
-
gem.homepage = "https://github.
|
9
|
+
gem.homepage = "https://narkoz.github.io/whoaz"
|
10
|
+
gem.license = "BSD"
|
10
11
|
|
11
12
|
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
12
13
|
gem.files = `git ls-files`.split("\n")
|
@@ -15,6 +16,8 @@ Gem::Specification.new do |gem|
|
|
15
16
|
gem.require_paths = ["lib"]
|
16
17
|
gem.version = Whoaz::VERSION
|
17
18
|
|
19
|
+
gem.required_ruby_version = ">= 2.0.0"
|
20
|
+
|
18
21
|
gem.add_runtime_dependency 'nokogiri'
|
19
22
|
|
20
23
|
gem.add_development_dependency 'rake'
|
metadata
CHANGED
@@ -1,60 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whoaz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Nihad Abbasov
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2017-05-04 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: nokogiri
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rake
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: rspec
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - ">="
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: fakeweb
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ">="
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
58
69
|
description: A gem that provides a nice way to interact with Whois.Az
|
59
70
|
email:
|
60
71
|
- mail@narkoz.me
|
@@ -63,57 +74,49 @@ executables:
|
|
63
74
|
extensions: []
|
64
75
|
extra_rdoc_files: []
|
65
76
|
files:
|
66
|
-
- .gitignore
|
77
|
+
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
67
79
|
- Gemfile
|
68
|
-
- LICENSE
|
80
|
+
- LICENSE.txt
|
69
81
|
- README.md
|
70
82
|
- Rakefile
|
71
83
|
- bin/whoaz
|
72
84
|
- lib/whoaz.rb
|
73
85
|
- lib/whoaz/errors.rb
|
74
|
-
- lib/whoaz/ruby_ext.rb
|
75
86
|
- lib/whoaz/version.rb
|
76
87
|
- lib/whoaz/whois.rb
|
77
88
|
- spec/fixtures/free.html
|
78
|
-
- spec/fixtures/less_than_3_chars.html
|
79
89
|
- spec/fixtures/organization.html
|
80
90
|
- spec/fixtures/person.html
|
81
91
|
- spec/spec_helper.rb
|
82
92
|
- spec/whoaz/whois_spec.rb
|
83
93
|
- whoaz.gemspec
|
84
|
-
homepage: https://github.
|
85
|
-
licenses:
|
94
|
+
homepage: https://narkoz.github.io/whoaz
|
95
|
+
licenses:
|
96
|
+
- BSD
|
97
|
+
metadata: {}
|
86
98
|
post_install_message:
|
87
99
|
rdoc_options: []
|
88
100
|
require_paths:
|
89
101
|
- lib
|
90
102
|
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
-
none: false
|
92
103
|
requirements:
|
93
|
-
- -
|
104
|
+
- - ">="
|
94
105
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
96
|
-
segments:
|
97
|
-
- 0
|
98
|
-
hash: 4109073648025391866
|
106
|
+
version: 2.0.0
|
99
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
108
|
requirements:
|
102
|
-
- -
|
109
|
+
- - ">="
|
103
110
|
- !ruby/object:Gem::Version
|
104
111
|
version: '0'
|
105
|
-
segments:
|
106
|
-
- 0
|
107
|
-
hash: 4109073648025391866
|
108
112
|
requirements: []
|
109
113
|
rubyforge_project:
|
110
|
-
rubygems_version:
|
114
|
+
rubygems_version: 2.6.10
|
111
115
|
signing_key:
|
112
|
-
specification_version:
|
116
|
+
specification_version: 4
|
113
117
|
summary: Gets domain whois information from Whois.Az
|
114
118
|
test_files:
|
115
119
|
- spec/fixtures/free.html
|
116
|
-
- spec/fixtures/less_than_3_chars.html
|
117
120
|
- spec/fixtures/organization.html
|
118
121
|
- spec/fixtures/person.html
|
119
122
|
- spec/spec_helper.rb
|
data/lib/whoaz/ruby_ext.rb
DELETED
@@ -1,147 +0,0 @@
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Whois.Az</title>
|
5
|
-
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
6
|
-
<link href="/whois.css" rel="stylesheet" type="text/css">
|
7
|
-
</head>
|
8
|
-
|
9
|
-
<body bgcolor="#F7F7F7" background="/imgs/bg.jpg" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
|
10
|
-
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
11
|
-
<tr>
|
12
|
-
<td><img src="/imgs/whois.gif" hspace="16"></td>
|
13
|
-
<td width="100%" valign="middle" align="center"><a href="http://www.az"><img border=0 src="/imgs/intrans.gif" alt="IntraNS" width="468" height="60"></a></td>
|
14
|
-
|
15
|
-
<td background="/imgs/bg1.jpg"><img src="/imgs/dot.gif" width="18" height="1"></td>
|
16
|
-
</tr>
|
17
|
-
</table>
|
18
|
-
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
19
|
-
<tr>
|
20
|
-
<td><img src="/imgs/dot.gif" width="16" height="8"></td>
|
21
|
-
<td width="100%" bgcolor="#AAA8A8"><img src="/imgs/dot.gif" width="16" height="6"></td>
|
22
|
-
<td background="/imgs/bg1.jpg"><img src="/imgs/dot.gif" width="18" height="1"></td>
|
23
|
-
</tr>
|
24
|
-
</table>
|
25
|
-
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
26
|
-
<tr>
|
27
|
-
<td><img src="/imgs/dot.gif" width="16" height="8"></td>
|
28
|
-
<td valign="top" width="90%" background="/imgs/topbg.gif"><img src="/imgs/welcome.gif" width="228" height="15" vspace="10"></td>
|
29
|
-
<td background="/imgs/topbg.gif"><img src="/imgs/dot.gif" width="2" height="67"></td>
|
30
|
-
<td valign="top" align="right" width="90%" background="/imgs/topbg.gif"><img src="/imgs/i.gif" width="32" height="28" hspace="10" vspace="8"><br>
|
31
|
-
<a href="/index_ru.html">ru</a> <a href="/index_az.html">az</a> <a href="/index.html">en</a><img src="/imgs/dot.gif" width="22" height="8"></td>
|
32
|
-
<td background="/imgs/bg1.jpg"><img src="/imgs/dot.gif" width="18" height="1"></td>
|
33
|
-
</tr></table>
|
34
|
-
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
35
|
-
<tr>
|
36
|
-
<td><img src="/imgs/dot.gif" width="13" height="1"></td>
|
37
|
-
<td align="left"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
|
38
|
-
<td colspan="2" width="33%" background="/imgs/topbg1.gif" valign="top"><img src="/imgs/1.gif" width="98" height="8"><img src="/imgs/dot.gif" width="152" height="8"></td>
|
39
|
-
<td colspan="2" width="33%" background="/imgs/topbg1.gif" valign="top"><img src="/imgs/2.gif" width="123" height="8"><img src="/imgs/dot.gif" width="128" height="8"></td>
|
40
|
-
<td colspan="2" width="33%" background="/imgs/topbg1.gif" valign="top"><img src="/imgs/3.gif" width="65" height="8"></td>
|
41
|
-
</tr>
|
42
|
-
<tr><td colspan="6" width="100%" background="/imgs/linebg.gif"><img src="/imgs/dot.gif" width="16" height="7"></td>
|
43
|
-
</tr>
|
44
|
-
<tr>
|
45
|
-
<td colspan="2" width="33%" bgcolor="#EEECE9" valign="top"> </td>
|
46
|
-
<td width="33%" align="right" bgcolor="#EEECE9" valign="top" class="title">check
|
47
|
-
the domain name<img src="/imgs/dot.gif" width="1" height="3"></td>
|
48
|
-
<td bgcolor="#EEECE9" valign="top"><img src="/imgs/dot.gif" width="14" height="6"></td>
|
49
|
-
<td width="33%" align="right" bgcolor="#EEECE9" valign="top" class="title">information about domains in .az zone<img src="/imgs/dot.gif" width="1" height="3"></td>
|
50
|
-
<td bgcolor="#EEECE9" valign="top"><img src="/imgs/dot.gif" width="14" height="6"></td>
|
51
|
-
|
52
|
-
</tr><tr>
|
53
|
-
<td width="30%" bgcolor="#E3DFDC" valign="top"></td>
|
54
|
-
<td bgcolor="#EEECE9" valign="top"><img src="/imgs/dot.gif" width="14" height="6"></td>
|
55
|
-
<td width="30%" align="right" bgcolor="#E3DFDC" valign="top" class="title"><img src="/imgs/dot.gif" width="10" height="3"></td>
|
56
|
-
<td bgcolor="#EEECE9" valign="top"><img src="/imgs/dot.gif" width="14" height="6"></td>
|
57
|
-
<td width="30%" align="right" bgcolor="#E3DFDC" valign="top" class="title"><img src="/imgs/dot.gif" width="10" height="3"></td>
|
58
|
-
<td bgcolor="#EEECE9" valign="top"><img src="/imgs/dot.gif" width="14" height="6"></td>
|
59
|
-
</tr>
|
60
|
-
<tr>
|
61
|
-
<td background="/imgs/mapbg.jpg" align="center" valign="top"><img src="/imgs/map.jpg" width="230" height="117"></td>
|
62
|
-
<td bgcolor="#EEECE9" valign="top"><img src="/imgs/dot.gif" width="14" height="6"></td>
|
63
|
-
<td background="/imgs/hline.gif" valign="top"><br>
|
64
|
-
<form name="whois" action="/cgi-bin/whois.cgi" method="post">
|
65
|
-
<input type="hidden" name="lang" value="en"> <ul>
|
66
|
-
1.Enter the name of
|
67
|
-
your domain (ex.nt.az)<br>
|
68
|
-
2.Select your desired *ext</ul>
|
69
|
-
<ul><table cellpadding="0" cellspacing="0" border="0">
|
70
|
-
<tr><td valign="top"><input type='text' name='domain' size='18' maxlength="50" class='sub'></td>
|
71
|
-
<td valign="top"><select name='dom' class='sub'>
|
72
|
-
<option selected value='.az'>.az</option>
|
73
|
-
<option value='.com.az'>.com.az</option>
|
74
|
-
<option value='.co.az'>.co.az</option>
|
75
|
-
<option value='.net.az'>.net.az</option>
|
76
|
-
<option value='.int.az'>.int.az</option>
|
77
|
-
<option value='.gov.az'>.gov.az</option>
|
78
|
-
<option value='.biz.az'>.biz.az</option>
|
79
|
-
<option value='.org.az'>.org.az</option>
|
80
|
-
<option value='.edu.az'>.edu.az</option>
|
81
|
-
<option value='.mil.az'>.mil.az</option>
|
82
|
-
<option value='.pp.az'>.pp.az</option>
|
83
|
-
<option value='.name.az'>.name.az</option>
|
84
|
-
<option value='.info.az'>.info.az</option>
|
85
|
-
</select><a href="JavaScript:document.whois.submit()"><img src="/imgs/tick.gif" width="20" height="16" border="0"></a>
|
86
|
-
</form></td>
|
87
|
-
</tr>
|
88
|
-
</table>
|
89
|
-
</td>
|
90
|
-
<td bgcolor="#EEECE9"" valign="top"><img src="/imgs/dot.gif" width="14" height="6"></td>
|
91
|
-
<td background="/imgs/vline.gif" valign="top">
|
92
|
-
<table width="100%" border="0" cellspacing="0" cellpadding="10">
|
93
|
-
<tr>
|
94
|
-
<td>Do a easy search below for your desired domain name, to check
|
95
|
-
for its availability before you proceed to register. <br>
|
96
|
-
You can find info about the following domains : <br>
|
97
|
-
az, com.az, net.az, int.az, gov.az, org.az, .edu.az, .info.az,
|
98
|
-
.pp.az, .mil.az, .name.az and biz.az.</td>
|
99
|
-
</tr>
|
100
|
-
</table>
|
101
|
-
</td><td bgcolor="#EEECE9"><img src="/imgs/dot.gif"></td>
|
102
|
-
</tr></table>
|
103
|
-
<table width="100%" border="0" cellspacing="0" cellpadding="0" background="/imgs/mid.jpg"><tr>
|
104
|
-
<td width="30%" bgcolor="#E3DFDC"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
105
|
-
<td bgcolor="#EEECE9"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
106
|
-
<td width="30%" bgcolor="#E3DFDC"><img src="/imgs/dot.gif" width="10" height="1"></td>
|
107
|
-
<td bgcolor="#EEECE9"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
108
|
-
<td width="30%" bgcolor="#E3DFDC"><img src="/imgs/dot.gif" width="10" height="1"></td>
|
109
|
-
<td bgcolor="#EEECE9"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
110
|
-
</tr>
|
111
|
-
<tr>
|
112
|
-
<td colspan="6" bgcolor="#D9D5D1"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
113
|
-
</tr>
|
114
|
-
<td colspan="5" valign="top">
|
115
|
-
|
116
|
-
<p align="center"><br> Using of domain names contains less than 3 symbols is not allowed </p>
|
117
|
-
|
118
|
-
<img src="/imgs/dot.gif" width="14" height="1">
|
119
|
-
</td>
|
120
|
-
<td><img src="/imgs/dot.gif" width="14" height="1"></td>
|
121
|
-
</tr>
|
122
|
-
</table>
|
123
|
-
|
124
|
-
<table width="100%" border="0" cellspacing="0"><tr>
|
125
|
-
<td colspan="2" bgcolor="#999999"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
126
|
-
</tr> <tr>
|
127
|
-
<td valign="top" background="/imgs/bgbot.jpg"><img src="/imgs/who.gif" width="29" height="146"></td>
|
128
|
-
<td align="center" valign="middle" background="/imgs/bgbot.jpg"><img src="/imgs/choose.jpg" width="521" height="146"></td>
|
129
|
-
</tr>
|
130
|
-
<tr>
|
131
|
-
<td colspan="2" bgcolor="#999999"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
132
|
-
</tr>
|
133
|
-
<tr>
|
134
|
-
<td colspan="2" background="/imgs/bottom.jpg" align="right">Copyright
|
135
|
-
© by <a href="http://www.nt.az/">Network Technologies</a><img src="/imgs/dot.gif" width="11" height="56"></td>
|
136
|
-
</tr>
|
137
|
-
<tr>
|
138
|
-
<td colspan="2" bgcolor="#BABABA"><img src="/imgs/dot.gif" width="14" height="1"></td>
|
139
|
-
</tr>
|
140
|
-
</table>
|
141
|
-
|
142
|
-
</td>
|
143
|
-
<td background="/imgs/bg1.jpg"><img src="/imgs/dot.gif" width="18" height="1"></td>
|
144
|
-
</tr>
|
145
|
-
</table>
|
146
|
-
</body>
|
147
|
-
</html>
|