robowhois 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/.rspec +1 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +36 -0
- data/LICENSE +22 -0
- data/README.md +108 -0
- data/Rakefile +92 -0
- data/lib/robo_whois/version.rb +25 -0
- data/lib/robo_whois.rb +94 -0
- data/lib/robowhois.rb +10 -0
- data/robowhois.gemspec +37 -0
- data/spec/fixtures/account.dump +16 -0
- data/spec/fixtures/commands.sh +1 -0
- data/spec/fixtures/error_bad_credentials.dump +15 -0
- data/spec/fixtures/error_server_whois_only_web.dump +15 -0
- data/spec/fixtures/error_unauthenticated.dump +16 -0
- data/spec/fixtures/whois.dump +92 -0
- data/spec/fixtures/whois_availability.dump +16 -0
- data/spec/fixtures/whois_availability_available.dump +16 -0
- data/spec/fixtures/whois_availability_registered.dump +16 -0
- data/spec/fixtures/whois_parts.dump +16 -0
- data/spec/fixtures/whois_properties.dump +16 -0
- data/spec/fixtures/whois_properties_available.dump +16 -0
- data/spec/fixtures/whois_properties_registered.dump +16 -0
- data/spec/fixtures/whois_record.dump +16 -0
- data/spec/spec_helper.rb +35 -0
- data/spec/support/fake_request_helpers.rb +9 -0
- data/spec/support/helpers.rb +18 -0
- data/spec/unit/robo_whois_spec.rb +192 -0
- metadata +126 -0
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
robowhois (0.1.0)
|
5
|
+
httparty (~> 0.8.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
diff-lcs (1.1.3)
|
11
|
+
fakeweb (1.3.0)
|
12
|
+
httparty (0.8.1)
|
13
|
+
multi_json
|
14
|
+
multi_xml
|
15
|
+
multi_json (1.1.0)
|
16
|
+
multi_xml (0.4.1)
|
17
|
+
rake (0.9.2.2)
|
18
|
+
rspec (2.8.0)
|
19
|
+
rspec-core (~> 2.8.0)
|
20
|
+
rspec-expectations (~> 2.8.0)
|
21
|
+
rspec-mocks (~> 2.8.0)
|
22
|
+
rspec-core (2.8.0)
|
23
|
+
rspec-expectations (2.8.0)
|
24
|
+
diff-lcs (~> 1.1.2)
|
25
|
+
rspec-mocks (2.8.0)
|
26
|
+
yard (0.7.5)
|
27
|
+
|
28
|
+
PLATFORMS
|
29
|
+
ruby
|
30
|
+
|
31
|
+
DEPENDENCIES
|
32
|
+
fakeweb (~> 1.3.0)
|
33
|
+
rake (~> 0.9)
|
34
|
+
robowhois!
|
35
|
+
rspec (~> 2.8.0)
|
36
|
+
yard
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2012 RoboDomain Inc.
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
# RoboWhois - Ruby Client
|
2
|
+
|
3
|
+
This is the official Ruby client for [RoboWhois](http://www.robowhois.com/) [API](http://docs.robowhois.com/api/).
|
4
|
+
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
The best way to install this library is via [RubyGems](https://rubygems.org/).
|
9
|
+
|
10
|
+
$ gem install robowhois
|
11
|
+
|
12
|
+
You might need administrator privileges on your system to install the gem.
|
13
|
+
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
All the examples below assume you installed the gem and required it via RubyGems.
|
18
|
+
You also need a [RoboWhois](http://www.robowhois.com/) account and a valid API key.
|
19
|
+
|
20
|
+
require 'robowhois'
|
21
|
+
|
22
|
+
Please refer to the RoboWhois [API Documentation](http://docs.robowhois.com/api/) for the list of all available API methods and response attributes.
|
23
|
+
|
24
|
+
### Account information
|
25
|
+
|
26
|
+
client = RoboWhois.new('YOUR_API_KEY')
|
27
|
+
account = client.account
|
28
|
+
|
29
|
+
puts account['email']
|
30
|
+
# => your email
|
31
|
+
puts account['credits_limit']
|
32
|
+
# => available credits
|
33
|
+
|
34
|
+
### Original WHOIS record
|
35
|
+
|
36
|
+
client = RoboWhois.new('YOUR_API_KEY')
|
37
|
+
response = client.whois('example.com')
|
38
|
+
|
39
|
+
puts response
|
40
|
+
# => The record String
|
41
|
+
|
42
|
+
### Parsed WHOIS record
|
43
|
+
|
44
|
+
client = RoboWhois.new('YOUR_API_KEY')
|
45
|
+
response = client.whois_properties('example.com')
|
46
|
+
|
47
|
+
# The record date
|
48
|
+
puts response['daystamp']
|
49
|
+
|
50
|
+
# The record registrant
|
51
|
+
if contact = response['properties']['registrant_contacts']
|
52
|
+
puts contact['id']
|
53
|
+
puts contact['name']
|
54
|
+
puts contact['organization']
|
55
|
+
else
|
56
|
+
puts "Registrant details not available."
|
57
|
+
end
|
58
|
+
|
59
|
+
# The record nameservers
|
60
|
+
response['properties']['nameservers'].each do |nameserver|
|
61
|
+
puts nameserver['name']
|
62
|
+
puts nameserver['ipv4']
|
63
|
+
puts nameserver['ipv6']
|
64
|
+
end
|
65
|
+
|
66
|
+
### Response Object
|
67
|
+
|
68
|
+
You can access the last response object using the `last_response` method.
|
69
|
+
|
70
|
+
client = RoboWhois.new('YOUR_API_KEY')
|
71
|
+
account = client.account
|
72
|
+
|
73
|
+
response = client.last_response
|
74
|
+
response.code
|
75
|
+
# => 200
|
76
|
+
response.headers
|
77
|
+
# => { ... }
|
78
|
+
|
79
|
+
### Errors
|
80
|
+
|
81
|
+
In case of failure, the API call raises a `RoboWhois::APIError` exception.
|
82
|
+
|
83
|
+
client = RoboWhois.new('YOUR_API_KEY')
|
84
|
+
|
85
|
+
begin
|
86
|
+
response = client.whois_properties('example.es')
|
87
|
+
rescue => error
|
88
|
+
puts error.code
|
89
|
+
# => "R2"
|
90
|
+
puts error.name
|
91
|
+
# => "ServerWhoisOnlyWeb"
|
92
|
+
puts error.status
|
93
|
+
# => 400
|
94
|
+
end
|
95
|
+
|
96
|
+
Error codes are explained in the [API Errors](http://docs.robowhois.com/api/errors/) documentation page.
|
97
|
+
|
98
|
+
|
99
|
+
## Changelog
|
100
|
+
|
101
|
+
See the CHANGELOG.md file for details.
|
102
|
+
|
103
|
+
|
104
|
+
## License
|
105
|
+
|
106
|
+
Copyright (c) 2012 RoboDomain Inc.
|
107
|
+
|
108
|
+
This is Free Software distributed under the MIT license.
|
data/Rakefile
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
|
4
|
+
$:.unshift(File.dirname(__FILE__) + "/lib")
|
5
|
+
require 'robo_whois/version'
|
6
|
+
|
7
|
+
|
8
|
+
# Common package properties
|
9
|
+
PKG_NAME = "robowhois"
|
10
|
+
PKG_VERSION = RoboWhois::VERSION
|
11
|
+
|
12
|
+
|
13
|
+
# Run test by default.
|
14
|
+
task :default => :spec
|
15
|
+
task :test => :spec
|
16
|
+
|
17
|
+
|
18
|
+
spec = Gem::Specification.new do |s|
|
19
|
+
s.name = PKG_NAME
|
20
|
+
s.version = PKG_VERSION
|
21
|
+
s.summary = "Ruby client for the RoboWhois API."
|
22
|
+
s.description = "Ruby client for the RoboWhois API."
|
23
|
+
|
24
|
+
s.required_ruby_version = ">= 1.8.7"
|
25
|
+
|
26
|
+
s.authors = ["Simone Carletti"]
|
27
|
+
s.email = ["weppos@weppos.net"]
|
28
|
+
s.homepage = "https://github.com/robowhois/robowhois-ruby-client"
|
29
|
+
|
30
|
+
s.files = `git ls-files`.split("\n")
|
31
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
32
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
33
|
+
s.require_paths = %w( lib )
|
34
|
+
|
35
|
+
s.add_dependency "httparty", "~> 0.8.0"
|
36
|
+
|
37
|
+
s.add_development_dependency "rake", "~> 0.9"
|
38
|
+
s.add_development_dependency "yard"
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
require 'rubygems/package_task'
|
43
|
+
|
44
|
+
Gem::PackageTask.new(spec) do |pkg|
|
45
|
+
pkg.gem_spec = spec
|
46
|
+
end
|
47
|
+
|
48
|
+
desc "Build the gemspec file #{spec.name}.gemspec"
|
49
|
+
task :gemspec do
|
50
|
+
file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
|
51
|
+
File.open(file, "w") {|f| f << spec.to_ruby }
|
52
|
+
end
|
53
|
+
|
54
|
+
desc "Remove any temporary products, including gemspec"
|
55
|
+
task :clean => [:clobber] do
|
56
|
+
rm "#{spec.name}.gemspec" if File.file?("#{spec.name}.gemspec")
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "Remove any generated file"
|
60
|
+
task :clobber => [:clobber_package]
|
61
|
+
|
62
|
+
desc "Package the library and generates the gemspec"
|
63
|
+
task :package => [:gemspec]
|
64
|
+
|
65
|
+
|
66
|
+
require 'rspec/core/rake_task'
|
67
|
+
|
68
|
+
RSpec::Core::RakeTask.new do |t|
|
69
|
+
t.verbose = !!ENV["VERBOSE"]
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
require 'yard'
|
74
|
+
require 'yard/rake/yardoc_task'
|
75
|
+
|
76
|
+
YARD::Rake::YardocTask.new(:yardoc) do |y|
|
77
|
+
y.options = ["--output-dir", "yardoc"]
|
78
|
+
end
|
79
|
+
|
80
|
+
namespace :yardoc do
|
81
|
+
task :clobber do
|
82
|
+
rm_r "yardoc" rescue nil
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
task :clobber => "yardoc:clobber"
|
87
|
+
|
88
|
+
|
89
|
+
desc "Open an irb session preloaded with this library"
|
90
|
+
task :console do
|
91
|
+
sh "irb -rubygems -I lib -r robowhois.rb"
|
92
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#--
|
2
|
+
# RoboWhois
|
3
|
+
#
|
4
|
+
# Ruby client for the RoboWhois API.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2012 RoboDomain Inc.
|
7
|
+
#++
|
8
|
+
|
9
|
+
|
10
|
+
class RoboWhois
|
11
|
+
|
12
|
+
# Holds information about library version.
|
13
|
+
module Version
|
14
|
+
MAJOR = 0
|
15
|
+
MINOR = 1
|
16
|
+
PATCH = 0
|
17
|
+
BUILD = nil
|
18
|
+
|
19
|
+
STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join(".")
|
20
|
+
end
|
21
|
+
|
22
|
+
# The current library version.
|
23
|
+
VERSION = Version::STRING
|
24
|
+
|
25
|
+
end
|
data/lib/robo_whois.rb
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
#--
|
2
|
+
# RoboWhois
|
3
|
+
#
|
4
|
+
# Ruby client for the RoboWhois API.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2012 RoboDomain Inc.
|
7
|
+
#++
|
8
|
+
|
9
|
+
|
10
|
+
require 'robo_whois/version'
|
11
|
+
require 'httparty'
|
12
|
+
|
13
|
+
|
14
|
+
class RoboWhois
|
15
|
+
include HTTParty
|
16
|
+
|
17
|
+
class Error < StandardError
|
18
|
+
end
|
19
|
+
|
20
|
+
class APIError < Error
|
21
|
+
|
22
|
+
attr_reader :attributes
|
23
|
+
|
24
|
+
def initialize(attributes)
|
25
|
+
@attributes = attributes
|
26
|
+
super(attributes[:name])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
base_uri "http://api.robowhois.com"
|
32
|
+
|
33
|
+
attr_reader :last_response
|
34
|
+
|
35
|
+
|
36
|
+
def initialize(api_key)
|
37
|
+
@auth = { :username => api_key, :password => "X" }
|
38
|
+
end
|
39
|
+
|
40
|
+
def api_key
|
41
|
+
@auth[:username]
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
def account
|
46
|
+
get("/account")["account"]
|
47
|
+
end
|
48
|
+
|
49
|
+
def whois(query)
|
50
|
+
get("/whois/#{query}")
|
51
|
+
end
|
52
|
+
|
53
|
+
def whois_availability(query)
|
54
|
+
get("/whois/#{query}/availability")["response"]
|
55
|
+
end
|
56
|
+
|
57
|
+
def whois_parts(query)
|
58
|
+
get("/whois/#{query}/parts")["response"]
|
59
|
+
end
|
60
|
+
|
61
|
+
def whois_properties(query)
|
62
|
+
get("/whois/#{query}/properties")["response"]
|
63
|
+
end
|
64
|
+
|
65
|
+
def whois_record(query)
|
66
|
+
get("/whois/#{query}/record")["response"]
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def get(path, params = {})
|
73
|
+
request(:get, path, options(:query => params))
|
74
|
+
end
|
75
|
+
|
76
|
+
def request(method, path, options)
|
77
|
+
@last_response = self.class.send(method, path, options)
|
78
|
+
case @last_response.code
|
79
|
+
when 200
|
80
|
+
@last_response
|
81
|
+
else
|
82
|
+
error = @last_response["error"]
|
83
|
+
raise APIError, { :code => error["code"], :name => error["name"], :status => @last_response.code }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def options(hash = {})
|
88
|
+
hash[:headers] ||= {}
|
89
|
+
hash[:headers]["User-Agent"] = "RoboWhois Ruby #{VERSION}"
|
90
|
+
hash[:basic_auth] = @auth
|
91
|
+
hash
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
data/lib/robowhois.rb
ADDED
data/robowhois.gemspec
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "robowhois"
|
5
|
+
s.version = "0.1.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Simone Carletti"]
|
9
|
+
s.date = "2012-03-05"
|
10
|
+
s.description = "Ruby client for the RoboWhois API."
|
11
|
+
s.email = ["weppos@weppos.net"]
|
12
|
+
s.files = [".gitignore", ".rspec", "CHANGELOG.md", "Gemfile", "Gemfile.lock", "LICENSE", "README.md", "Rakefile", "lib/robo_whois.rb", "lib/robo_whois/version.rb", "lib/robowhois.rb", "robowhois.gemspec", "spec/fixtures/account.dump", "spec/fixtures/commands.sh", "spec/fixtures/error_bad_credentials.dump", "spec/fixtures/error_server_whois_only_web.dump", "spec/fixtures/error_unauthenticated.dump", "spec/fixtures/whois.dump", "spec/fixtures/whois_availability.dump", "spec/fixtures/whois_availability_available.dump", "spec/fixtures/whois_availability_registered.dump", "spec/fixtures/whois_parts.dump", "spec/fixtures/whois_properties.dump", "spec/fixtures/whois_properties_available.dump", "spec/fixtures/whois_properties_registered.dump", "spec/fixtures/whois_record.dump", "spec/spec_helper.rb", "spec/support/fake_request_helpers.rb", "spec/support/helpers.rb", "spec/unit/robo_whois_spec.rb"]
|
13
|
+
s.homepage = "https://github.com/robowhois/robowhois-ruby-client"
|
14
|
+
s.require_paths = ["lib"]
|
15
|
+
s.required_ruby_version = Gem::Requirement.new(">= 1.8.7")
|
16
|
+
s.rubygems_version = "1.8.11"
|
17
|
+
s.summary = "Ruby client for the RoboWhois API."
|
18
|
+
s.test_files = ["spec/fixtures/account.dump", "spec/fixtures/commands.sh", "spec/fixtures/error_bad_credentials.dump", "spec/fixtures/error_server_whois_only_web.dump", "spec/fixtures/error_unauthenticated.dump", "spec/fixtures/whois.dump", "spec/fixtures/whois_availability.dump", "spec/fixtures/whois_availability_available.dump", "spec/fixtures/whois_availability_registered.dump", "spec/fixtures/whois_parts.dump", "spec/fixtures/whois_properties.dump", "spec/fixtures/whois_properties_available.dump", "spec/fixtures/whois_properties_registered.dump", "spec/fixtures/whois_record.dump", "spec/spec_helper.rb", "spec/support/fake_request_helpers.rb", "spec/support/helpers.rb", "spec/unit/robo_whois_spec.rb"]
|
19
|
+
|
20
|
+
if s.respond_to? :specification_version then
|
21
|
+
s.specification_version = 3
|
22
|
+
|
23
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
24
|
+
s.add_runtime_dependency(%q<httparty>, ["~> 0.8.0"])
|
25
|
+
s.add_development_dependency(%q<rake>, ["~> 0.9"])
|
26
|
+
s.add_development_dependency(%q<yard>, [">= 0"])
|
27
|
+
else
|
28
|
+
s.add_dependency(%q<httparty>, ["~> 0.8.0"])
|
29
|
+
s.add_dependency(%q<rake>, ["~> 0.9"])
|
30
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
31
|
+
end
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<httparty>, ["~> 0.8.0"])
|
34
|
+
s.add_dependency(%q<rake>, ["~> 0.9"])
|
35
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "c58d5fa387c6862748e219848931776b"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: d40e45d4493f167b7f92df5faa977c1c
|
11
|
+
X-Runtime: 0.151658
|
12
|
+
Date: Sat, 11 Feb 2012 11:31:14 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"account":{"id":"000000000000000000000000","email":"example@example.com","api_token":"0000000000000000000000000000000000000000","credits_remaining":499}}
|
@@ -0,0 +1 @@
|
|
1
|
+
curl -u "$ROBOWHOIS_API_KEY:X" -i api.robowhois.com/account > spec/fixtures/account.dump
|
@@ -0,0 +1,15 @@
|
|
1
|
+
HTTP/1.1 401 Unauthorized
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 401
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
Cache-Control: no-cache, private
|
9
|
+
X-Request-Id: 70744f5db685c3d5cb5293b0b04ca7a0
|
10
|
+
X-Runtime: 0.354711
|
11
|
+
Date: Mon, 05 Mar 2012 11:38:15 GMT
|
12
|
+
X-Rack-Cache: miss
|
13
|
+
Server: nginx/1.1.14 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
|
14
|
+
|
15
|
+
{"error":{"code":"C03","name":"BadCredentials"}}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
HTTP/1.1 400 Bad Request
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 400
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
Cache-Control: no-cache, private
|
9
|
+
X-Request-Id: a55f033b1038cb6512314949813822ca
|
10
|
+
X-Runtime: 0.327995
|
11
|
+
Date: Mon, 05 Mar 2012 11:46:59 GMT
|
12
|
+
X-Rack-Cache: miss
|
13
|
+
Server: nginx/1.1.14 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
|
14
|
+
|
15
|
+
{"error":{"code":"R02","name":"ServerWhoisOnlyWeb"}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 401 Unauthorized
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 401
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
|
7
|
+
WWW-Authenticate: Basic realm="API"
|
8
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
9
|
+
Cache-Control: no-cache
|
10
|
+
X-Request-Id: 694d2e8894af1422aba9a045c293d1c2
|
11
|
+
X-Runtime: 0.004623
|
12
|
+
Date: Mon, 05 Mar 2012 11:38:21 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.1.14 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"error":{"code":"C01","name":"Unauthenticated"}}
|
@@ -0,0 +1,92 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: text/plain; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "b5ad81fcfae57902d4b185c173f9a605"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: 39970607f2a4829c9def876beb11230a
|
11
|
+
X-Runtime: 0.145829
|
12
|
+
Date: Sat, 11 Feb 2012 11:31:55 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
|
17
|
+
Whois Server Version 2.0
|
18
|
+
|
19
|
+
Domain names in the .com and .net domains can now be registered
|
20
|
+
with many different competing registrars. Go to http://www.internic.net
|
21
|
+
for detailed information.
|
22
|
+
|
23
|
+
Server Name: EXAMPLE.COM.RAFAELYALUFF.COM
|
24
|
+
IP Address: 173.203.204.123
|
25
|
+
Registrar: DOMAIN.COM, LLC
|
26
|
+
Whois Server: whois.domain.com
|
27
|
+
Referral URL: http://www.domain.com
|
28
|
+
|
29
|
+
Server Name: EXAMPLE.COM.AU
|
30
|
+
Registrar: ENETICA PTY LTD
|
31
|
+
Whois Server: whois.enetica.com.au
|
32
|
+
Referral URL: http://www.enetica.com.au
|
33
|
+
|
34
|
+
Domain Name: EXAMPLE.COM
|
35
|
+
Registrar: RESERVED-INTERNET ASSIGNED NUMBERS AUTHORITY
|
36
|
+
Whois Server: whois.iana.org
|
37
|
+
Referral URL: http://res-dom.iana.org
|
38
|
+
Name Server: A.IANA-SERVERS.NET
|
39
|
+
Name Server: B.IANA-SERVERS.NET
|
40
|
+
Status: clientDeleteProhibited
|
41
|
+
Status: clientTransferProhibited
|
42
|
+
Status: clientUpdateProhibited
|
43
|
+
Updated Date: 14-aug-2011
|
44
|
+
Creation Date: 14-aug-1995
|
45
|
+
Expiration Date: 13-aug-2012
|
46
|
+
|
47
|
+
>>> Last update of whois database: Sat, 11 Feb 2012 11:18:59 UTC <<<
|
48
|
+
|
49
|
+
NOTICE: The expiration date displayed in this record is the date the
|
50
|
+
registrar's sponsorship of the domain name registration in the registry is
|
51
|
+
currently set to expire. This date does not necessarily reflect the expiration
|
52
|
+
date of the domain name registrant's agreement with the sponsoring
|
53
|
+
registrar. Users may consult the sponsoring registrar's Whois database to
|
54
|
+
view the registrar's reported date of expiration for this registration.
|
55
|
+
|
56
|
+
TERMS OF USE: You are not authorized to access or query our Whois
|
57
|
+
database through the use of electronic processes that are high-volume and
|
58
|
+
automated except as reasonably necessary to register domain names or
|
59
|
+
modify existing registrations; the Data in VeriSign Global Registry
|
60
|
+
Services' ("VeriSign") Whois database is provided by VeriSign for
|
61
|
+
information purposes only, and to assist persons in obtaining information
|
62
|
+
about or related to a domain name registration record. VeriSign does not
|
63
|
+
guarantee its accuracy. By submitting a Whois query, you agree to abide
|
64
|
+
by the following terms of use: You agree that you may use this Data only
|
65
|
+
for lawful purposes and that under no circumstances will you use this Data
|
66
|
+
to: (1) allow, enable, or otherwise support the transmission of mass
|
67
|
+
unsolicited, commercial advertising or solicitations via e-mail, telephone,
|
68
|
+
or facsimile; or (2) enable high volume, automated, electronic processes
|
69
|
+
that apply to VeriSign (or its computer systems). The compilation,
|
70
|
+
repackaging, dissemination or other use of this Data is expressly
|
71
|
+
prohibited without the prior written consent of VeriSign. You agree not to
|
72
|
+
use electronic processes that are automated and high-volume to access or
|
73
|
+
query the Whois database except as reasonably necessary to register
|
74
|
+
domain names or modify existing registrations. VeriSign reserves the right
|
75
|
+
to restrict your access to the Whois database in its sole discretion to ensure
|
76
|
+
operational stability. VeriSign may restrict or terminate your access to the
|
77
|
+
Whois database for failure to abide by these terms of use. VeriSign
|
78
|
+
reserves the right to modify these terms at any time.
|
79
|
+
|
80
|
+
The Registry database contains ONLY .COM, .NET, .EDU domains and
|
81
|
+
Registrars.
|
82
|
+
% IANA WHOIS server
|
83
|
+
% for more information on IANA, visit http://www.iana.org
|
84
|
+
% This query returned 1 object
|
85
|
+
|
86
|
+
domain: EXAMPLE.COM
|
87
|
+
|
88
|
+
organisation: Internet Assigned Numbers Authority
|
89
|
+
|
90
|
+
created: 1992-01-01
|
91
|
+
source: IANA
|
92
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "8f7b51b498f919a966fb86e40e1a0c90"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: db845f5a236b1c03a6a5632c41b28685
|
11
|
+
X-Runtime: 0.184463
|
12
|
+
Date: Sat, 11 Feb 2012 11:36:39 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"response":{"daystamp":"2012-02-11","available":false,"registered":true}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "7b9fff40475dfd3e77b544aafb1f22e9"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: 8abf4e8cff594351c65bb870263fbfca
|
11
|
+
X-Runtime: 0.145351
|
12
|
+
Date: Sat, 11 Feb 2012 11:36:41 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"response":{"daystamp":"2012-02-11","available":true,"registered":false}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "8f7b51b498f919a966fb86e40e1a0c90"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: db845f5a236b1c03a6a5632c41b28685
|
11
|
+
X-Runtime: 0.184463
|
12
|
+
Date: Sat, 11 Feb 2012 11:36:39 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"response":{"daystamp":"2012-02-11","available":false,"registered":true}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "acd5c3455f9c36945915f558ad1c48b2"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: 283afadf8d5834e69192a72f64c1a40e
|
11
|
+
X-Runtime: 0.151321
|
12
|
+
Date: Sat, 11 Feb 2012 11:35:02 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"response":{"daystamp":"2012-02-11","parts":[{"body":"\nWhois Server Version 2.0\n\nDomain names in the .com and .net domains can now be registered\nwith many different competing registrars. Go to http://www.internic.net\nfor detailed information.\n\n Server Name: EXAMPLE.COM.RAFAELYALUFF.COM\n IP Address: 173.203.204.123\n Registrar: DOMAIN.COM, LLC\n Whois Server: whois.domain.com\n Referral URL: http://www.domain.com\n\n Server Name: EXAMPLE.COM.AU\n Registrar: ENETICA PTY LTD\n Whois Server: whois.enetica.com.au\n Referral URL: http://www.enetica.com.au\n\n Domain Name: EXAMPLE.COM\n Registrar: RESERVED-INTERNET ASSIGNED NUMBERS AUTHORITY\n Whois Server: whois.iana.org\n Referral URL: http://res-dom.iana.org\n Name Server: A.IANA-SERVERS.NET\n Name Server: B.IANA-SERVERS.NET\n Status: clientDeleteProhibited\n Status: clientTransferProhibited\n Status: clientUpdateProhibited\n Updated Date: 14-aug-2011\n Creation Date: 14-aug-1995\n Expiration Date: 13-aug-2012\n\n>>> Last update of whois database: Sat, 11 Feb 2012 11:18:59 UTC <<<\n\nNOTICE: The expiration date displayed in this record is the date the \nregistrar's sponsorship of the domain name registration in the registry is \ncurrently set to expire. This date does not necessarily reflect the expiration \ndate of the domain name registrant's agreement with the sponsoring \nregistrar. Users may consult the sponsoring registrar's Whois database to \nview the registrar's reported date of expiration for this registration.\n\nTERMS OF USE: You are not authorized to access or query our Whois \ndatabase through the use of electronic processes that are high-volume and \nautomated except as reasonably necessary to register domain names or \nmodify existing registrations; the Data in VeriSign Global Registry \nServices' (\"VeriSign\") Whois database is provided by VeriSign for \ninformation purposes only, and to assist persons in obtaining information \nabout or related to a domain name registration record. VeriSign does not \nguarantee its accuracy. By submitting a Whois query, you agree to abide \nby the following terms of use: You agree that you may use this Data only \nfor lawful purposes and that under no circumstances will you use this Data \nto: (1) allow, enable, or otherwise support the transmission of mass \nunsolicited, commercial advertising or solicitations via e-mail, telephone, \nor facsimile; or (2) enable high volume, automated, electronic processes \nthat apply to VeriSign (or its computer systems). The compilation, \nrepackaging, dissemination or other use of this Data is expressly \nprohibited without the prior written consent of VeriSign. You agree not to \nuse electronic processes that are automated and high-volume to access or \nquery the Whois database except as reasonably necessary to register \ndomain names or modify existing registrations. VeriSign reserves the right \nto restrict your access to the Whois database in its sole discretion to ensure \noperational stability. VeriSign may restrict or terminate your access to the \nWhois database for failure to abide by these terms of use. VeriSign \nreserves the right to modify these terms at any time. \n\nThe Registry database contains ONLY .COM, .NET, .EDU domains and\nRegistrars.","host":"whois.crsnic.net"},{"body":"% IANA WHOIS server\n% for more information on IANA, visit http://www.iana.org\n% This query returned 1 object\n\ndomain: EXAMPLE.COM\n\norganisation: Internet Assigned Numbers Authority\n\ncreated: 1992-01-01\nsource: IANA\n\n","host":"whois.iana.org"}]}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "241f771ce0d41c0740befdee3a6c4b87"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: c8954c2c93b87a5ef1ef4aea9062d83f
|
11
|
+
X-Runtime: 0.192808
|
12
|
+
Date: Sat, 11 Feb 2012 11:38:13 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"response":{"daystamp":"2012-02-11","properties":{"disclaimer":"TERMS OF USE: You are not authorized to access or query our Whois database through the use of electronic processes that are high-volume and automated except as reasonably necessary to register domain names or modify existing registrations; the Data in VeriSign Global Registry Services' (\"VeriSign\") Whois database is provided by VeriSign for information purposes only, and to assist persons in obtaining information about or related to a domain name registration record. VeriSign does not guarantee its accuracy. By submitting a Whois query, you agree to abide by the following terms of use: You agree that you may use this Data only for lawful purposes and that under no circumstances will you use this Data to: (1) allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via e-mail, telephone, or facsimile; or (2) enable high volume, automated, electronic processes that apply to VeriSign (or its computer systems). The compilation, repackaging, dissemination or other use of this Data is expressly prohibited without the prior written consent of VeriSign. You agree not to use electronic processes that are automated and high-volume to access or query the Whois database except as reasonably necessary to register domain names or modify existing registrations. VeriSign reserves the right to restrict your access to the Whois database in its sole discretion to ensure operational stability. VeriSign may restrict or terminate your access to the Whois database for failure to abide by these terms of use. VeriSign reserves the right to modify these terms at any time.","domain":"google.com","domain_id":null,"referral_whois":["whois.PublicDomainRegistry.com","whois.tucows.com","whois.domaincontext.com","whois.PublicDomainRegistry.com","whois.PublicDomainRegistry.com","whois.PublicDomainRegistry.com","whois.rrpproxy.net","whois.onlinenic.com","whois.dotster.com","whois.PublicDomainRegistry.com","whois.PublicDomainRegistry.com","whois.webnic.cc","whois.PublicDomainRegistry.com","whois.enterprice.net","whois.melbourneit.com","whois.godaddy.com","whois.enom.com","whois.godaddy.com","whois.enom.com","whois.omnis.com","whois.godaddy.com","whois.dotster.com","whois.PublicDomainRegistry.com","whois.names4ever.com","whois.wildwestdomains.com","whois.PublicDomainRegistry.com","whois.PublicDomainRegistry.com","whois.enom.com","whois.name.com","whois.gandi.net","whois.hostingservicesinc.net","grs-whois.hichina.com","whois.tucows.com","whois.PublicDomainRegistry.com","whois.godaddy.com","whois.namesecure.com","whois.paycenter.com.cn","whois.enom.com","whois.godaddy.com","whois.tucows.com","whois.planetdomain.com","whois.enom.com","whois.tucows.com","whois.markmonitor.com"],"referral_url":"http://www.markmonitor.com","status":["clientDeleteProhibited","clientTransferProhibited","clientUpdateProhibited","serverDeleteProhibited","serverTransferProhibited","serverUpdateProhibited"],"available?":false,"registered?":true,"created_on":"1997-09-15T00:00:00+00:00","updated_on":"2012-01-29T00:00:00+00:00","expires_on":"2020-09-13T00:00:00+00:00","registrar":{"id":null,"name":"Markmonitor.com","organization":null,"url":"http://www.markmonitor.com"},"registrant_contacts":[{"id":null,"type":1,"name":"Dns Admin","organization":"Google Inc.","address":"Please contact contact-admin@google.com 1600 Amphitheatre Parkway","city":"Mountain View","zip":"94043","state":"CA","country":null,"country_code":"US","phone":"+1.6502530000","fax":"+1.6506188571","email":"dns-admin@google.com","created_on":null,"updated_on":null}],"admin_contacts":[{"id":null,"type":2,"name":"DNS Admin","organization":"Google Inc.","address":"1600 Amphitheatre Parkway","city":"Mountain View","zip":"94043","state":"CA","country":null,"country_code":"US","phone":"+1.6506234000","fax":"+1.6506188571","email":"dns-admin@google.com","created_on":null,"updated_on":null}],"technical_contacts":[{"id":null,"type":3,"name":"DNS Admin","organization":"Google Inc.","address":"2400 E. Bayshore Pkwy","city":"Mountain View","zip":"94043","state":"CA","country":null,"country_code":"US","phone":"+1.6503300100","fax":"+1.6506181499","email":"dns-admin@google.com","created_on":null,"updated_on":null}],"nameservers":[{"name":"ns1.google.com","ipv4":null,"ipv6":null},{"name":"ns4.google.com","ipv4":null,"ipv6":null},{"name":"ns2.google.com","ipv4":null,"ipv6":null},{"name":"ns3.google.com","ipv4":null,"ipv6":null}]}}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "050f7b5641618c7a0460cc63f4c5223f"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: 43b2f1e41887edf6d57e5339531806e1
|
11
|
+
X-Runtime: 0.147982
|
12
|
+
Date: Sat, 11 Feb 2012 11:38:14 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"response":{"daystamp":"2012-02-11","properties":{"disclaimer":"TERMS OF USE: You are not authorized to access or query our Whois database through the use of electronic processes that are high-volume and automated except as reasonably necessary to register domain names or modify existing registrations; the Data in VeriSign Global Registry Services' (\"VeriSign\") Whois database is provided by VeriSign for information purposes only, and to assist persons in obtaining information about or related to a domain name registration record. VeriSign does not guarantee its accuracy. By submitting a Whois query, you agree to abide by the following terms of use: You agree that you may use this Data only for lawful purposes and that under no circumstances will you use this Data to: (1) allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via e-mail, telephone, or facsimile; or (2) enable high volume, automated, electronic processes that apply to VeriSign (or its computer systems). The compilation, repackaging, dissemination or other use of this Data is expressly prohibited without the prior written consent of VeriSign. You agree not to use electronic processes that are automated and high-volume to access or query the Whois database except as reasonably necessary to register domain names or modify existing registrations. VeriSign reserves the right to restrict your access to the Whois database in its sole discretion to ensure operational stability. VeriSign may restrict or terminate your access to the Whois database for failure to abide by these terms of use. VeriSign reserves the right to modify these terms at any time.","domain":"g111111111fle.com","domain_id":null,"referral_whois":null,"referral_url":null,"status":null,"available?":true,"registered?":false,"created_on":null,"updated_on":null,"expires_on":null,"registrar":null,"registrant_contacts":null,"admin_contacts":null,"technical_contacts":null,"nameservers":[]}}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "241f771ce0d41c0740befdee3a6c4b87"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: c8954c2c93b87a5ef1ef4aea9062d83f
|
11
|
+
X-Runtime: 0.192808
|
12
|
+
Date: Sat, 11 Feb 2012 11:38:13 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"response":{"daystamp":"2012-02-11","properties":{"disclaimer":"TERMS OF USE: You are not authorized to access or query our Whois database through the use of electronic processes that are high-volume and automated except as reasonably necessary to register domain names or modify existing registrations; the Data in VeriSign Global Registry Services' (\"VeriSign\") Whois database is provided by VeriSign for information purposes only, and to assist persons in obtaining information about or related to a domain name registration record. VeriSign does not guarantee its accuracy. By submitting a Whois query, you agree to abide by the following terms of use: You agree that you may use this Data only for lawful purposes and that under no circumstances will you use this Data to: (1) allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via e-mail, telephone, or facsimile; or (2) enable high volume, automated, electronic processes that apply to VeriSign (or its computer systems). The compilation, repackaging, dissemination or other use of this Data is expressly prohibited without the prior written consent of VeriSign. You agree not to use electronic processes that are automated and high-volume to access or query the Whois database except as reasonably necessary to register domain names or modify existing registrations. VeriSign reserves the right to restrict your access to the Whois database in its sole discretion to ensure operational stability. VeriSign may restrict or terminate your access to the Whois database for failure to abide by these terms of use. VeriSign reserves the right to modify these terms at any time.","domain":"google.com","domain_id":null,"referral_whois":["whois.PublicDomainRegistry.com","whois.tucows.com","whois.domaincontext.com","whois.PublicDomainRegistry.com","whois.PublicDomainRegistry.com","whois.PublicDomainRegistry.com","whois.rrpproxy.net","whois.onlinenic.com","whois.dotster.com","whois.PublicDomainRegistry.com","whois.PublicDomainRegistry.com","whois.webnic.cc","whois.PublicDomainRegistry.com","whois.enterprice.net","whois.melbourneit.com","whois.godaddy.com","whois.enom.com","whois.godaddy.com","whois.enom.com","whois.omnis.com","whois.godaddy.com","whois.dotster.com","whois.PublicDomainRegistry.com","whois.names4ever.com","whois.wildwestdomains.com","whois.PublicDomainRegistry.com","whois.PublicDomainRegistry.com","whois.enom.com","whois.name.com","whois.gandi.net","whois.hostingservicesinc.net","grs-whois.hichina.com","whois.tucows.com","whois.PublicDomainRegistry.com","whois.godaddy.com","whois.namesecure.com","whois.paycenter.com.cn","whois.enom.com","whois.godaddy.com","whois.tucows.com","whois.planetdomain.com","whois.enom.com","whois.tucows.com","whois.markmonitor.com"],"referral_url":"http://www.markmonitor.com","status":["clientDeleteProhibited","clientTransferProhibited","clientUpdateProhibited","serverDeleteProhibited","serverTransferProhibited","serverUpdateProhibited"],"available?":false,"registered?":true,"created_on":"1997-09-15T00:00:00+00:00","updated_on":"2012-01-29T00:00:00+00:00","expires_on":"2020-09-13T00:00:00+00:00","registrar":{"id":null,"name":"Markmonitor.com","organization":null,"url":"http://www.markmonitor.com"},"registrant_contacts":[{"id":null,"type":1,"name":"Dns Admin","organization":"Google Inc.","address":"Please contact contact-admin@google.com 1600 Amphitheatre Parkway","city":"Mountain View","zip":"94043","state":"CA","country":null,"country_code":"US","phone":"+1.6502530000","fax":"+1.6506188571","email":"dns-admin@google.com","created_on":null,"updated_on":null}],"admin_contacts":[{"id":null,"type":2,"name":"DNS Admin","organization":"Google Inc.","address":"1600 Amphitheatre Parkway","city":"Mountain View","zip":"94043","state":"CA","country":null,"country_code":"US","phone":"+1.6506234000","fax":"+1.6506188571","email":"dns-admin@google.com","created_on":null,"updated_on":null}],"technical_contacts":[{"id":null,"type":3,"name":"DNS Admin","organization":"Google Inc.","address":"2400 E. Bayshore Pkwy","city":"Mountain View","zip":"94043","state":"CA","country":null,"country_code":"US","phone":"+1.6503300100","fax":"+1.6506181499","email":"dns-admin@google.com","created_on":null,"updated_on":null}],"nameservers":[{"name":"ns1.google.com","ipv4":null,"ipv6":null},{"name":"ns4.google.com","ipv4":null,"ipv6":null},{"name":"ns2.google.com","ipv4":null,"ipv6":null},{"name":"ns3.google.com","ipv4":null,"ipv6":null}]}}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Type: application/json; charset=utf-8
|
3
|
+
Transfer-Encoding: chunked
|
4
|
+
Connection: keep-alive
|
5
|
+
Status: 200
|
6
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7
|
7
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
8
|
+
ETag: "d38776b8f0b76f0cd3b419f13627910c"
|
9
|
+
Cache-Control: must-revalidate, private, max-age=0
|
10
|
+
X-Request-Id: c0325eb7e5b5a57df84a55bba8be1acb
|
11
|
+
X-Runtime: 0.151665
|
12
|
+
Date: Sat, 11 Feb 2012 11:35:01 GMT
|
13
|
+
X-Rack-Cache: miss
|
14
|
+
Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
|
15
|
+
|
16
|
+
{"response":{"daystamp":"2012-02-11","record":"\nWhois Server Version 2.0\n\nDomain names in the .com and .net domains can now be registered\nwith many different competing registrars. Go to http://www.internic.net\nfor detailed information.\n\n Server Name: EXAMPLE.COM.RAFAELYALUFF.COM\n IP Address: 173.203.204.123\n Registrar: DOMAIN.COM, LLC\n Whois Server: whois.domain.com\n Referral URL: http://www.domain.com\n\n Server Name: EXAMPLE.COM.AU\n Registrar: ENETICA PTY LTD\n Whois Server: whois.enetica.com.au\n Referral URL: http://www.enetica.com.au\n\n Domain Name: EXAMPLE.COM\n Registrar: RESERVED-INTERNET ASSIGNED NUMBERS AUTHORITY\n Whois Server: whois.iana.org\n Referral URL: http://res-dom.iana.org\n Name Server: A.IANA-SERVERS.NET\n Name Server: B.IANA-SERVERS.NET\n Status: clientDeleteProhibited\n Status: clientTransferProhibited\n Status: clientUpdateProhibited\n Updated Date: 14-aug-2011\n Creation Date: 14-aug-1995\n Expiration Date: 13-aug-2012\n\n>>> Last update of whois database: Sat, 11 Feb 2012 11:18:59 UTC <<<\n\nNOTICE: The expiration date displayed in this record is the date the \nregistrar's sponsorship of the domain name registration in the registry is \ncurrently set to expire. This date does not necessarily reflect the expiration \ndate of the domain name registrant's agreement with the sponsoring \nregistrar. Users may consult the sponsoring registrar's Whois database to \nview the registrar's reported date of expiration for this registration.\n\nTERMS OF USE: You are not authorized to access or query our Whois \ndatabase through the use of electronic processes that are high-volume and \nautomated except as reasonably necessary to register domain names or \nmodify existing registrations; the Data in VeriSign Global Registry \nServices' (\"VeriSign\") Whois database is provided by VeriSign for \ninformation purposes only, and to assist persons in obtaining information \nabout or related to a domain name registration record. VeriSign does not \nguarantee its accuracy. By submitting a Whois query, you agree to abide \nby the following terms of use: You agree that you may use this Data only \nfor lawful purposes and that under no circumstances will you use this Data \nto: (1) allow, enable, or otherwise support the transmission of mass \nunsolicited, commercial advertising or solicitations via e-mail, telephone, \nor facsimile; or (2) enable high volume, automated, electronic processes \nthat apply to VeriSign (or its computer systems). The compilation, \nrepackaging, dissemination or other use of this Data is expressly \nprohibited without the prior written consent of VeriSign. You agree not to \nuse electronic processes that are automated and high-volume to access or \nquery the Whois database except as reasonably necessary to register \ndomain names or modify existing registrations. VeriSign reserves the right \nto restrict your access to the Whois database in its sole discretion to ensure \noperational stability. VeriSign may restrict or terminate your access to the \nWhois database for failure to abide by these terms of use. VeriSign \nreserves the right to modify these terms at any time. \n\nThe Registry database contains ONLY .COM, .NET, .EDU domains and\nRegistrars.\n% IANA WHOIS server\n% for more information on IANA, visit http://www.iana.org\n% This query returned 1 object\n\ndomain: EXAMPLE.COM\n\norganisation: Internet Assigned Numbers Authority\n\ncreated: 1992-01-01\nsource: IANA\n\n"}}
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'robowhois'
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
|
6
|
+
Bundler.require(:default, :test)
|
7
|
+
|
8
|
+
require 'rspec'
|
9
|
+
|
10
|
+
unless defined?(SPEC_ROOT)
|
11
|
+
SPEC_ROOT = File.expand_path("../", __FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
# The fixtures are UTF-8 encoded.
|
15
|
+
# Make sure Ruby uses the proper encoding.
|
16
|
+
if RUBY_VERSION < '1.9'
|
17
|
+
$KCODE = 'u'
|
18
|
+
else
|
19
|
+
Encoding.default_external = Encoding::UTF_8
|
20
|
+
Encoding.default_internal = Encoding::UTF_8
|
21
|
+
end
|
22
|
+
|
23
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
24
|
+
# in spec/support/ and its subdirectories.
|
25
|
+
Dir[File.join(SPEC_ROOT, "support/**/*.rb")].each { |f| require f }
|
26
|
+
|
27
|
+
RSpec.configure do |config|
|
28
|
+
config.mock_with :rspec
|
29
|
+
|
30
|
+
config.before(:each) do
|
31
|
+
FakeWeb.clean_registry
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
FakeWeb.allow_net_connect = false
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module RSpecSupportHelpers
|
2
|
+
|
3
|
+
# Gets the currently described class.
|
4
|
+
# Conversely to +subject+, it returns the class
|
5
|
+
# instead of an instance.
|
6
|
+
def klass
|
7
|
+
described_class
|
8
|
+
end
|
9
|
+
|
10
|
+
def fixture(*names)
|
11
|
+
File.join(SPEC_ROOT, "fixtures", *names)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
RSpec.configure do |config|
|
17
|
+
config.include RSpecSupportHelpers
|
18
|
+
end
|
@@ -0,0 +1,192 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RoboWhois do
|
4
|
+
let(:client) { RoboWhois.new('API_KEY') }
|
5
|
+
|
6
|
+
describe "#initialize" do
|
7
|
+
it "sets api_key" do
|
8
|
+
client.api_key.should == 'API_KEY'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#request" do
|
13
|
+
let(:mock_response) {
|
14
|
+
Class.new(Object) do
|
15
|
+
def code
|
16
|
+
200
|
17
|
+
end
|
18
|
+
def [](key)
|
19
|
+
nil
|
20
|
+
end
|
21
|
+
end.new
|
22
|
+
}
|
23
|
+
|
24
|
+
before do
|
25
|
+
stub_get('http://API_KEY:X@api.robowhois.com/account', 'account')
|
26
|
+
end
|
27
|
+
|
28
|
+
it "sets authentication credentials" do
|
29
|
+
RoboWhois.should_receive(:get).with('/account', hash_including(:basic_auth => {
|
30
|
+
:username => "API_KEY",
|
31
|
+
:password => "X",
|
32
|
+
})).and_return(mock_response)
|
33
|
+
client.account
|
34
|
+
end
|
35
|
+
|
36
|
+
it "sets headers" do
|
37
|
+
RoboWhois.should_receive(:get).with('/account', hash_including(:headers => {
|
38
|
+
"User-Agent" => "RoboWhois Ruby #{RoboWhois::VERSION}"
|
39
|
+
})).and_return(mock_response)
|
40
|
+
client.account
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "#account" do
|
45
|
+
before do
|
46
|
+
stub_get('http://API_KEY:X@api.robowhois.com/account', 'account')
|
47
|
+
@response = client.account
|
48
|
+
end
|
49
|
+
|
50
|
+
it "responds with 200" do
|
51
|
+
client.last_response.code.should == 200
|
52
|
+
end
|
53
|
+
|
54
|
+
it "returns account information" do
|
55
|
+
@response.should be_a(Hash)
|
56
|
+
@response['id'].should == '000000000000000000000000'
|
57
|
+
@response['email'].should == 'example@example.com'
|
58
|
+
@response['api_token'].should == '0000000000000000000000000000000000000000'
|
59
|
+
@response['credits_remaining'].should == 499
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "#whois" do
|
64
|
+
before do
|
65
|
+
stub_get('http://API_KEY:X@api.robowhois.com/whois/example.com', 'whois')
|
66
|
+
@response = client.whois("example.com")
|
67
|
+
end
|
68
|
+
|
69
|
+
it "responds with 200" do
|
70
|
+
client.last_response.code.should == 200
|
71
|
+
end
|
72
|
+
|
73
|
+
it "returns the raw whois record" do
|
74
|
+
@response.should be_a(String)
|
75
|
+
@response.should =~ /^\nWhois Server Version 2.0/
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "#whois_availability" do
|
80
|
+
before do
|
81
|
+
stub_get('http://API_KEY:X@api.robowhois.com/whois/example.com/availability', 'whois_availability')
|
82
|
+
@response = client.whois_availability("example.com")
|
83
|
+
end
|
84
|
+
|
85
|
+
it "responds with 200" do
|
86
|
+
client.last_response.code.should == 200
|
87
|
+
end
|
88
|
+
|
89
|
+
it "returns whois availability" do
|
90
|
+
@response.should be_a(Hash)
|
91
|
+
@response['daystamp'].should == '2012-02-11'
|
92
|
+
@response['available'].should == false
|
93
|
+
@response['registered'].should == true
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe "#whois_parts" do
|
98
|
+
before do
|
99
|
+
stub_get('http://API_KEY:X@api.robowhois.com/whois/example.com/parts', 'whois_parts')
|
100
|
+
@response = client.whois_parts("example.com")
|
101
|
+
end
|
102
|
+
|
103
|
+
it "responds with 200" do
|
104
|
+
client.last_response.code.should == 200
|
105
|
+
end
|
106
|
+
|
107
|
+
it "returns whois record parts" do
|
108
|
+
@response.should be_a(Hash)
|
109
|
+
@response['daystamp'].should == '2012-02-11'
|
110
|
+
@response['parts'].size.should == 2
|
111
|
+
|
112
|
+
part = @response['parts'][0]
|
113
|
+
part['host'].should == 'whois.crsnic.net'
|
114
|
+
part['body'].should =~ /^\nWhois Server Version 2.0/
|
115
|
+
|
116
|
+
part = @response['parts'][1]
|
117
|
+
part['host'].should == 'whois.iana.org'
|
118
|
+
part['body'].should =~ /^% IANA WHOIS server/
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
describe "#whois_properties" do
|
123
|
+
before do
|
124
|
+
stub_get('http://API_KEY:X@api.robowhois.com/whois/example.com/properties', 'whois_properties')
|
125
|
+
@response = client.whois_properties("example.com")
|
126
|
+
end
|
127
|
+
|
128
|
+
it "responds with 200" do
|
129
|
+
client.last_response.code.should == 200
|
130
|
+
end
|
131
|
+
|
132
|
+
it "returns whois properties" do
|
133
|
+
@response.should be_a(Hash)
|
134
|
+
@response['daystamp'].should == '2012-02-11'
|
135
|
+
@response['properties'].should be_a(Hash)
|
136
|
+
|
137
|
+
properties = @response['properties']
|
138
|
+
properties['disclaimer'].should =~ /^TERMS OF USE/
|
139
|
+
properties['domain'].should == 'google.com'
|
140
|
+
properties['domain_id'].should == nil
|
141
|
+
properties['available?'].should == false
|
142
|
+
properties['registered?'].should == true
|
143
|
+
properties['registrar'].should be_a(Hash)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
describe "#whois_record" do
|
148
|
+
before do
|
149
|
+
stub_get('http://API_KEY:X@api.robowhois.com/whois/example.com/record', 'whois_record')
|
150
|
+
@response = client.whois_record("example.com")
|
151
|
+
end
|
152
|
+
|
153
|
+
it "responds with 200" do
|
154
|
+
client.last_response.code.should == 200
|
155
|
+
end
|
156
|
+
|
157
|
+
it "returns whois record" do
|
158
|
+
@response.should be_a(Hash)
|
159
|
+
@response['daystamp'].should == '2012-02-11'
|
160
|
+
@response['record'].should =~ /^\nWhois Server Version 2.0/
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
context "request failure" do
|
165
|
+
describe "BadCredentials" do
|
166
|
+
let(:client) { client = RoboWhois.new('BAD_KEY') }
|
167
|
+
|
168
|
+
before do
|
169
|
+
stub_get('http://BAD_KEY:X@api.robowhois.com/account', 'error_bad_credentials')
|
170
|
+
end
|
171
|
+
|
172
|
+
it "raises an APIError" do
|
173
|
+
lambda {
|
174
|
+
client.account
|
175
|
+
}.should raise_error(RoboWhois::APIError, /BadCredentials/)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
describe "ServerWhoisOnlyWeb" do
|
180
|
+
before do
|
181
|
+
stub_get('http://API_KEY:X@api.robowhois.com/whois/example.com/record', 'error_server_whois_only_web')
|
182
|
+
end
|
183
|
+
|
184
|
+
it "raises an APIError" do
|
185
|
+
lambda {
|
186
|
+
client.whois_record("example.com")
|
187
|
+
}.should raise_error(RoboWhois::APIError, /ServerWhoisOnlyWeb/)
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
end
|
metadata
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: robowhois
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Simone Carletti
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-03-05 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: httparty
|
16
|
+
requirement: &70172086412360 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.8.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70172086412360
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &70172086411840 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.9'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70172086411840
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: yard
|
38
|
+
requirement: &70172086411380 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70172086411380
|
47
|
+
description: Ruby client for the RoboWhois API.
|
48
|
+
email:
|
49
|
+
- weppos@weppos.net
|
50
|
+
executables: []
|
51
|
+
extensions: []
|
52
|
+
extra_rdoc_files: []
|
53
|
+
files:
|
54
|
+
- .gitignore
|
55
|
+
- .rspec
|
56
|
+
- CHANGELOG.md
|
57
|
+
- Gemfile
|
58
|
+
- Gemfile.lock
|
59
|
+
- LICENSE
|
60
|
+
- README.md
|
61
|
+
- Rakefile
|
62
|
+
- lib/robo_whois.rb
|
63
|
+
- lib/robo_whois/version.rb
|
64
|
+
- lib/robowhois.rb
|
65
|
+
- robowhois.gemspec
|
66
|
+
- spec/fixtures/account.dump
|
67
|
+
- spec/fixtures/commands.sh
|
68
|
+
- spec/fixtures/error_bad_credentials.dump
|
69
|
+
- spec/fixtures/error_server_whois_only_web.dump
|
70
|
+
- spec/fixtures/error_unauthenticated.dump
|
71
|
+
- spec/fixtures/whois.dump
|
72
|
+
- spec/fixtures/whois_availability.dump
|
73
|
+
- spec/fixtures/whois_availability_available.dump
|
74
|
+
- spec/fixtures/whois_availability_registered.dump
|
75
|
+
- spec/fixtures/whois_parts.dump
|
76
|
+
- spec/fixtures/whois_properties.dump
|
77
|
+
- spec/fixtures/whois_properties_available.dump
|
78
|
+
- spec/fixtures/whois_properties_registered.dump
|
79
|
+
- spec/fixtures/whois_record.dump
|
80
|
+
- spec/spec_helper.rb
|
81
|
+
- spec/support/fake_request_helpers.rb
|
82
|
+
- spec/support/helpers.rb
|
83
|
+
- spec/unit/robo_whois_spec.rb
|
84
|
+
homepage: https://github.com/robowhois/robowhois-ruby-client
|
85
|
+
licenses: []
|
86
|
+
post_install_message:
|
87
|
+
rdoc_options: []
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: 1.8.7
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
requirements: []
|
103
|
+
rubyforge_project:
|
104
|
+
rubygems_version: 1.8.11
|
105
|
+
signing_key:
|
106
|
+
specification_version: 3
|
107
|
+
summary: Ruby client for the RoboWhois API.
|
108
|
+
test_files:
|
109
|
+
- spec/fixtures/account.dump
|
110
|
+
- spec/fixtures/commands.sh
|
111
|
+
- spec/fixtures/error_bad_credentials.dump
|
112
|
+
- spec/fixtures/error_server_whois_only_web.dump
|
113
|
+
- spec/fixtures/error_unauthenticated.dump
|
114
|
+
- spec/fixtures/whois.dump
|
115
|
+
- spec/fixtures/whois_availability.dump
|
116
|
+
- spec/fixtures/whois_availability_available.dump
|
117
|
+
- spec/fixtures/whois_availability_registered.dump
|
118
|
+
- spec/fixtures/whois_parts.dump
|
119
|
+
- spec/fixtures/whois_properties.dump
|
120
|
+
- spec/fixtures/whois_properties_available.dump
|
121
|
+
- spec/fixtures/whois_properties_registered.dump
|
122
|
+
- spec/fixtures/whois_record.dump
|
123
|
+
- spec/spec_helper.rb
|
124
|
+
- spec/support/fake_request_helpers.rb
|
125
|
+
- spec/support/helpers.rb
|
126
|
+
- spec/unit/robo_whois_spec.rb
|