Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

140 lines (125 sloc) 3.489 kb
#
# = Ruby Whois
#
# An intelligent pure Ruby WHOIS client and parser.
#
#
# Category:: Net
# Package:: Whois
# Author:: Simone Carletti <weppos@weppos.net>
# License:: MIT License
#
#--
#
#++
require 'core_ext'
require 'whois/version'
require 'whois/errors'
require 'whois/client'
require 'whois/server'
require 'whois/answer'
module Whois
NAME = "Whois"
GEM = "whois"
AUTHORS = ["Simone Carletti <weppos@weppos.net>"]
# Queries the right WHOIS server for <tt>qstring</tt> and returns
# the response from the server.
#
# ==== Parameters
#
# qstring:: The String to be sent as query parameter.
#
# ==== Returns
#
# Whois::Answer:: The answer containing the response from the WHOIS server.
#
# ==== Examples
#
# Whois.query("google.com")
# # => #<Whois::Answer>
#
# This is equivalent to
#
# Whois::Client.new.query("google.com")
# # => #<Whois::Answer>
#
def self.query(qstring)
Client.new.query(qstring)
end
# Checks whether the object represented by <tt>qstring</tt> is available.
#
# Warning: this method is only available if a Whois parser exists
# for the top level domain of <tt>qstring</tt>.
# If no parser exists for <tt>qstring</tt>, you'll receive a
# warning message and the method will return <tt>nil</tt>.
# This is a technical limitation. Browse the lib/whois/answer/parsers
# folder to view all available parsers.
#
# ==== Parameters
#
# qstring:: The String to be sent as query parameter.
# It is intended to be a domain name, otherwise this method
# may return unexpected responses.
#
# ==== Returns
#
# Boolean
#
# ==== Examples
#
# Whois.available?("google.com")
# # => false
#
# Whois.available?("google-is-not-available-try-again-later.com")
# # => true
#
def self.available?(qstring)
query(qstring).available?
rescue ParserNotFound => e
warn "This method is not supported for this kind of object.\n" +
"Use Whois.query('#{qstring}') instead."
nil
end
# Checks whether the object represented by <tt>qstring</tt> is registered.
#
# Warning: this method is only available if a Whois parser exists
# for the top level domain of <tt>qstring</tt>.
# If no parser exists for <tt>qstring</tt>, you'll receive a warning message
# and the method will return <tt>nil</tt>.
# This is a technical limitation. Browse the lib/whois/answer/parsers folder
# to view all available parsers.
#
# ==== Parameters
#
# qstring:: The String to be sent as query parameter.
# It is intended to be a domain name, otherwise this method
# may return unexpected responses.
#
# ==== Returns
#
# Boolean
#
# ==== Examples
#
# Whois.registered?("google.com")
# # => true
#
# Whois.registered?("google-is-not-available-try-again-later.com")
# # => false
#
def self.registered?(qstring)
query(qstring).registered?
rescue ParserNotFound => e
warn "This method is not supported for this kind of object.\n" +
"Use Whois.query('#{qstring}') instead."
nil
end
# See <tt>Whois#query</tt>.
def self.whois(qstring)
query(qstring)
end
def self.deprecate(message = nil) # :nodoc:
message ||= "You are using deprecated behavior which will be removed from the next major or minor release."
warn("DEPRECATION WARNING: #{message}")
end
end
Jump to Line
Something went wrong with that request. Please try again.