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

642 lines (322 sloc) 20.23 kb

Changelog

master

  • ADDED: Ability to query IANA for TLD WHOIS information. [aadlani]

    Whois.query(".com")
    # => IANA WHOIS response for .com TLD
    
    Whois.query(".invalid")
    # => IANA WHOIS response for unassigned TLD
  • ADDED: Ability to compare two Server adapters for equality.

    Whois::Server.factory(:ipv4, "192.168.1.0/10", "whois.foo") == Whois::Server.factory(:ipv4, "192.168.1.0/10", "whois.foo")
    # => true
    
    Whois::Server.factory(:ipv4, "192.168.1.0", "whois.foo") == Whois::Server.factory(:ipv4, "192.168.1.0/10", "whois.foo")
    # => false
  • CHANGED: Renamed Scanners::VerisignScanner to Scanners::Verisign.

  • CHANGED: Excluded test folder from the packaged .gem file to reduce the size of the final packaged library.

Release 1.2.2

  • SERVER: Sync definitions with Debian whois 5.0.6.

  • SERVER: Added new IPv4, IPv6 allocations (whois 5.0.6).

  • SERVER: Added/Updated the .priv.at, .dj, .ls TLD definition (whois 5.0.6).

  • SERVER: Added xn–mgbaam7a8h (United Arabs Emirates), .xn–mgberp4a5d4ar (Saudi Arabia), .xn–p1ai (Russian Federation), .xn–fiqs8s (China), .xn–fiqz9s (China) and .xn–wgbh1c (Egypt) TLD servers. (whois 5.0.6).

  • SERVER: Killed .yu TLD, phased out on 30 March 2009 (whois 5.0.6).

  • NEW: Added .to TLD parser (whois.tonic.to).

  • FIXED: whois.jprs.jp doesn't fully understand answers for .net.jp domains [milk1000cc]

  • CHANGED: The .co TLD now has a WHOIS interface (whois.nic.co). Added simple .co parser.

  • CHANGED: Updated .sa TLD parser from saudinic.net.sa to whois.nic.net.sa (closes #29)

  • CHANGED: Updated .au TLD parser from whois.ausregistry.net.au to whois.audns.net.au (closes #27)

Release 1.2.1

  • NEW: Added simple .ee TLD parser (whois.eenet.ee).

  • NEW: Added simple .kz TLD parser (whois.nic.kz).

  • NEW: Added simple .la TLD parser (whois.nic.la).

  • NEW: Added simple .ec TLD parser (whois.nic.ec).

  • NEW: Added simple .uz TLD parser (whois.nic.uz).

  • NEW: Added simple .uy TLD parser (whois.nic.org.uy).

Release 1.2.0

  • NEW: Whois::Answer#throttle? returns true in case of throttle response (see whois.publicinternetregistry.com for a real example)

  • FIXED: With some .tr domains, whois.nic.tr parser returns inconsistent values for nameservers.

  • FIXED: Unexpected token error when trying to parse a .hu whois response. The whois.nic.hu has changed response format.

  • FIXED: RuntimeError “Unexpected token: WHOIS LIMIT EXCEEDED - SEE WWW.PIR.ORG/WHOIS FOR DETAILS” for whois.publicinternetregistry.com

  • CHANGED: Lazy-load adapters using Ruby autoload feature.

Release 1.1.8

  • NEW: Added simple .pt TLD parser (whois.dns.pt).

  • NEW: Added simple .ht TLD parser (whois.nic.ht).

  • NEW: Added simple .tr TLD parser (whois.nic.tr).

Release 1.1.7

  • FIXED: method `to_time' not defined in DateTime (NameError) when the library is used with Ruby 1.9.1 and Rails (closes #24)

Release 1.1.6

  • NEW: Added simple .in.ua TLD parser (whois.in.ua). It seems that .in.ua is handled separately from .ua.

Release 1.1.5

  • NEW: Added simple .ua TLD parser (whois.net.ua).

  • FIXED: Occasionally the library raises a “superclass mismatch for class DateTime (TypeError)” error.

  • CHANGED: Cleanup Whois::Adapter::Base @buffer after a successful request.

Release 1.1.4

  • NEW: Added registrar support to Verisign parsers

  • FIXED: Usage of deprecated method Whois::Answer::Parser.properties

  • FIXED: Verisign parsers don't return the correct Referral URL when there's more than one response entry in the answer

  • FIXED: Whois::Answer::Parsers::WhoisDotTk is not compatible with Ruby 1.9

Release 1.1.3

  • NEW: Added simple .tk TLD parser (whois.dot.tk).

  • NEW: Added .sn TLD parser (whois.nic.sn).

  • CHANGED: Whois::Answer#== and Whois::Answer#eql? should be able to compare Whois::Answer with subclasses.

  • CHANGED: Deprecate Whois::Answer::Parser.properties. Use Whois::Answer::Parser::PROPERTIES instead.

Release 1.1.2

  • NEW: Whois::Answer::Contact#type property returns the type of the contact (ADMIN, TECHNICAL, …).

  • FIXED: Whois::Answer::Parser::Base#contacts decomposes each Contact property in a single contact.

Release 1.1.1

  • FIXED: Deprecated methods Whois::Answer::Parser::Base#(admin|technical|registrant) didn't figure as supported with Whois::Answer#property_supported?(:method)

Release 1.1.0

  • NEW: Added simple .am TLD parser (whois.nic.am).

  • NEW: Added simple .as TLD parser (whois.nic.as).

  • NEW: Added simple .au TLD parser (whois.ausregistry.net.au).

  • NEW: Added simple .st TLD parser (whois.nic.st).

  • NEW: New methods Whois::Answer#contacts, Whois::Answer::Parser#contacts, and Whois::Answer::Parser::Base#contacts returns all supported contacts.

  • CHANGED: Renamed Whois::Answer::Parser::Base#(admin|technical|registrant) to Whois::Answer::Parser::Base#(admin|technical|registrant)_contact.

Release 1.0.12

  • NEW: Added simple .in TLD parser (whois.registry.in).

  • NEW: Added simple .jp TLD parser (whois.jprs.jp).

  • FIXED: With some .lu domains, whois.dns.lu parser returns invalid values for nameservers.

Release 1.0.11

  • NEW: Added simple .af TLD parser (whois.nic.af).

  • NEW: Added simple .ag TLD parser (whois.nic.ag).

  • NEW: Added simple .ai TLD parser (whois.ai).

  • NEW: Added simple .hk TLD parser (whois.hkdnr.net.hk).

  • NEW: Added simple .lu TLD parser (whois.dns.lu).

  • NEW: Added simple .mx TLD parser (whois.nic.mx).

  • FIXED: Fixed uninitialized constant error Whois::Answer::Parser::WhoisNicOrKr when trying to load the .kr parser.

Release 1.0.10

  • NEW: Added simple .kr TLD parser (whois.nic.or.kr).

  • NEW: Added simple .be TLD parser (whois.dns.be).

  • FIXED: .cn server was changed by mistake in commit:81b3e253785e59aca542b6165ab1b9769c6acdd7 from whois.cnnic.net.cn to whois.cnnic.cn. This caused the parser lookup to fail.

  • FIXED: With some .lt domains, whois.domreg.lt parser returns invalid values for nameservers.

  • FIXED: With some .bg domains, whois.register.bg parser returns invalid values for nameservers.

Release 1.0.9

  • NEW: Added simple .lt TLD parser (whois.domreg.lt).

  • NEW: Added simple .at TLD parser (whois.nic.at).

  • NEW: Added simple .cn TLD parser (whois.cnnic.net.cn).

  • NEW: Added simple .lv TLD parser (whois.nic.lv).

  • NEW: Added simple .si TLD parser (whois.arnes.si).

  • NEW: Added simple .id TLD parser (whois.pandi.or.id).

  • FIXED: With some .ru domains, whois.ripn.net parser returns invalid values for nameservers.

Release 1.0.8

  • NEW: Added simple .nz TLD parser (whois.srs.net.nz).

  • FIXED: With some .ch domains, whois.nic.ch parser returns invalid or duplicate values for nameservers.

Release 1.0.7

  • FIXED: whois.nic.hu parser raises a NoMethodError when trying to access 'registrant' property for personal domains (closes #19).

Release 1.0.6

  • NEW: Added simple .ve TLD parser (whois.nic.ve).

  • NEW: Added support for 'nameservers' property for all existing parsers.

  • FIXED: With some .eu domains, whois.eu parser returns invalid values for nameservers.

  • CHANGED: jobswhois.verisign-grs.com now correctly raises PropertyNotSupported when a property is not supported.

  • CHANGED: whois.crsnic.net now correctly raises PropertyNotSupported when a property is not supported.

  • CHANGED: whois.denic.de now correctly raises PropertyNotSupported when a property is not supported.

  • CHANGED: whois.nic.cc now correctly raises PropertyNotSupported when a property is not supported.

  • CHANGED: whois.nic.hu now correctly raises PropertyNotSupported when a property is not supported.

  • CHANGED: whois.nic.it now correctly raises PropertyNotSupported when a property is not supported.

  • CHANGED: whois.nic.tv now correctly raises PropertyNotSupported when a property is not supported.

Release 1.0.5

  • SERVER: Sync definitions with Debian whois 5.0.1.

  • SERVER: Added new IPv4 allocations (whois 5.0.1).

  • SERVER: Updated the .dj TLD definition (whois 5.0.1).

  • NEW: Support for 'nameservers' property for the whois.afilias.info parser. (closes #15)

  • NEW: Support for 'nameservers' property for the whois.nic.tel parser. (closes #17)

  • NEW: Support for 'nameservers' property for the whois.eu parser. (closes #16)

  • NEW: Support for 'nameservers' property for the whois.meregistry.net parser.

  • FIXED: whois.crsnic.net server crashes trying to return nameservers with reserved IANA domains and Ruby 1.9.1.

  • FIXED: With some .se domains, whois.nic-se.se parser returns invalid values for nameservers.

Release 1.0.4

  • NEW: Added Symbol.to_proc core extension to ensure compatibility with Ruby 1.8.6.

  • FIXED: Normalize 'nameservers' property return value. Always return an Array even if there's no nameserver.

  • CHANGED: Suppress Japanese output for the .js TLD [axic]

Release 1.0.3

  • SERVER: Added web address for the .eg TLD [axic]

  • SERVER: Updated web address for the .gt TLD [axic]

  • SERVER: Updated web address for the .co TLD (closes #13)

  • NEW: Support for 'Contact#zip' property for the whois.nic.it parser [axic]

  • NEW: Support for 'nameservers' property for the whois.adamsnames.tc parser.

  • NEW: Compatibility with semver.org

  • FIXED: The whois.nic.it parser extracts the wrong Contact country_code property [axic]

  • FIXED: With some .de domains, whois.denic.de parser returns invalid values for nameservers (closes #14)

  • FIXED: whois.crsnic.net crashes with reserved IANA domains (ex y.com)

Release 1.0.2

  • CHANGED: Changed Parsers to use a normalized content version called Whois::Parser::Base#content_for_scanner (Dho! I forgot to save some files on TextMate)

Release 1.0.1

  • CHANGED: Changed Parsers to use a normalized content version called Whois::Parser::Base#content_for_scanner

Release 1.0.0

  • SERVER: Changed .biz TLD server to whois.biz (see www.iana.org/domains/root/db/biz.html)

  • SERVER: Changed .br TLD server to whois.registro.br (see www.iana.org/domains/root/db/rb.html)

  • SERVER: Sync definitions with Debian whois 4.7.37.

  • SERVER: Added new IPv4 allocations (whois 4.7.37).

  • SERVER: Updated the .bd, .bi, .cm, .ge, .gf, .ki, .kn, .ls, .mq, .np and .tr TLD definitions (whois 4.7.37).

  • SERVER: Sync definitions with Debian whois 5.0.0.

  • SERVER: Updated the .id, .is, .mm, .my, .pw, .sb, .sr, .tj, .tp, .wf, .yt TLD definitions (whois 5.0.0).

  • SERVER: .dk TLD server requires –show-handles option (closes REDMINE-426)

  • NEW: Simple .at TLD parser.

  • NEW: Simple .be TLD parser.

  • NEW: Simple .bg TLD parser.

  • NEW: Simple .ca TLD parser.

  • NEW: Simple .ch TLD parser.

  • NEW: Simple .eu TLD parser.

  • NEW: Simple .gl TLD parser.

  • NEW: Simple .im TLD parser.

  • NEW: Simple .is TLD parser.

  • NEW: Simple .ly TLD parser.

  • NEW: Simple .me TLD parser.

  • NEW: Simple .mu, .ki TLD parser (whois.nic.mu).

  • NEW: Simple .nl TLD parser.

  • NEW: Simple .no TLD parser.

  • NEW: Simple .fo, .gm, .mc, .sm, .va TLD parsers (whois.ripe.net).

  • NEW: Simple .tl TLD parser.

  • NEW: Simple .tel TLD parser.

  • NEW: Simple .us TLD parser.

  • NEW: Simple .biz TLD parser.

  • NEW: Simple .mobi TLD parser.

  • NEW: Simple .museum TLD parser.

  • NEW: Simple .io TLD parser.

  • NEW: Simple .ro TLD parser.

  • NEW: Simple .br TLD parser.

  • NEW: Simple .travel TLD parser.

  • NEW: Simple .wf, .yt TLD parser (whois.nic.fr).

  • NEW: Simple .dk TLD parser [thanks to Mikkel Kristensen].

  • NEW: Simple .uk TLD parser (whois.nic.uk).

  • NEW: Simple .ws TLD parser (whois.samoanic.ws).

  • NEW: Simple .gd, vg, tc TLD parser (whois.adamsnames.tc).

  • NEW: Simple .su, .ru TLD parser (whois.ripn.net).

  • NEW: Simple .cat TLD parser (whois.cat).

  • NEW: Simple .cd TLD parser (whois.nic.cd).

  • NEW: Simple .coop TLD parser (whois.nic.coop).

  • NEW: Simple .pro TLD parser (whois.registrypro.pro).

  • NEW: Simple .ae TLD parser (whois.aeda.net.ae).

  • NEW: .cc, .jobs TLD parsers (verisign).

  • NEW: .ac TLD parser (whois.nic.ac).

  • NEW: Added ability to flag a property as :defined, :implemented and :supported. Parsers now can mark a property as supported or not supported using 'property_supported' and 'property_not_supported' methods in order to distinguish between properties not supported by the answer and methods that still need to be implemented because the parser is incomplete.

  • NEW: Whois#Answer.property? returns whether property has a value.

    a = Whois.query "google.it"
    a.created_on?
    # => true
    a.domain_id?
    # => false
  • NEW: Whois::WebInterfaceError now exposes #url attribute.

  • FIXED: Whois hosts containing a - are not correctly converted into a Ruby class, ex. whois.domain-registry.nl (closes REDMINE-389)

  • FIXED: In case of exception, the CLI doesn't exit nicely (closes REDMINE-333)

  • FIXED: Some tests are not compatible with Ruby 1.9

  • FIXED: Flagged created_on and expires_on properties as not supported for .de TLD.

  • CHANGED: All not supported properties now raise a PropertyNotSupported error instead of returning nil.

  • CHANGED: Depending on where you ask for a property, the library now returns the most expected value according to property status. If you try to access a property from the answer object, Whois::Answer always returns the value if the property is defined, nil otherwise no matter if the property is not supported or undefined.

    a = Whois.query "google.ac"
    a.nameservers
    # => nil even if not supported

    If you want a more granular level of response, you can access the underling parser implementation.

    a = Whois.query "google.ac"
    a.parser.nameservers
    # => PropertyNotSupported
  • CHANGED: Increased DEFAULT_TIMEOUT to 10 seconds

  • REMOVED: Removed Deprecated #supported? method

  • REMOVED: Removed Deprecated compatibility layer to Whois 0.4.2

Release 0.9.0

  • SERVER: .ec TLD has a whois server (closes REDMINE-322)

  • SERVER: .gl TLD has a whois server (closes REDMINE-323)

  • SERVER: .md TLD has a whois server (closes REDMINE-325)

  • SERVER: Changed .edu TLD server to whois.educause.edu (see www.iana.org/domains/root/db/edu.html)

  • FIXED: TLD definitions for whois.afilias-grs.info missing proper adapter (closes REDMINE-342)

  • FIXED: ./bin/ruby-whois uses the Gem instead of current version (closes REDMINE-344)

  • FIXED: Whois::Client doesn't cast qstring to_s (closes REDMINE-339)

  • FIXED: Whois::Parser doesn't detect preloaded parsers. Improved performances skipping unnecessary 'require'. (closes REDMINE-340)

  • NEW: Simple .fr TLD parser.

  • NEW: Simple .name TLD parser.

  • NEW: Simple .ie TLD parser.

  • NEW: Simple .edu TLD parser.

  • NEW: Simple .info TLD parser.

  • NEW: Simple .gov TLD parser.

  • NEW: Simple .za.net TLD parser.

  • NEW: Simple .eu.org TLD parser.

  • NEW: Simple .za.org TLD parser.

  • NEW: Simple .int/.arpa TLD parser.

  • NEW: Simple .aero TLD parser.

  • NEW: Simple .asia TLD parser.

  • NEW: Simple .bz, .gi, .hn, .lc, .mn, .sc and .vc TLD parser.

  • NEW: .tv TLD parser.

  • NEW: .hu TLD parser.

  • NEW: Ability to pass timeout option to 'ruby-whois' (closes REDMINE-334)

  • NEW: Whois::Answer#properties returns an Hash of :key => value

  • CHANGED: Removed Whois::BUILD and Whois::STATUS constants. Added Whois::Version::ALPHA constant to be used when I need to package prereleases (see RubyGem –prerelease flag).

  • CHANGED: Extracted Whois::Answer::Parser::Ast module from existing parsers.

  • CHANGED: Normalized WhoisDenicDe parser.

  • CHANGED: Renamed #supported to #property_supported?

Release 0.8.1

  • FIXED: Updated the whois.denic.de parser to the new format. Thanks to David Krentzlin (closes REDMINE-314)

  • FIXED: In case of thin server the client should select the closest whois server match (closes REDMINE-264)

  • NEW: ability to check whether a property is supported via answer.supported? or parser.supported?

Release 0.8.0

  • FIXED: Server definition with :format doesn't use the Formatted adapter (closes REDMINE-305)

  • NEW: whois.denic.de (.de TLD) parser [Aaron Mueller]

  • NEW: introduced support for multipart answers and Parser proxy class. This is useful in case of thin servers such as .com or .net because the parser needs to know all different responses in order to load all single scanners.

  • NEW: whois.crsnic.net (.com, .net, … TLDs) parser.

  • CHANGED: extracted all scanners into separated classes in order to make easier extract shared features.

  • CHANGED: renamed Whois::Response to Whois::Answer. This change is required to avoid confusion between query-answer and server request-response. A Whois::Answer is composed by one or more parts, corresponding to single server answers.

  • REMOVED: Whois::Answer#i_am_feeling_lucky (formerly Whois::Answer#i_am_feeling_lucky) become obsolete since the introduction of Answer parsers.

Release 0.6.0

  • NEW: new more convenient method to query a whois server in addition to the existing Whois::whois method.

    Whois::query("domain.com")
    # same as Whois::whois but added to normalize application interfaces.
    
    Whois::available?("domain.com")
    # returns true if the domain is available.
    
    Whois::registered?("domain.com")
    # returns true if the domain is registered.
  • NEW: Experimental support for whois response parsing. This release is shipped with two parsers for the .it and .net TLD.

    r = Whois::query("google.it")
    r.available?
    # => false
    r.created_on
    # => Time.parse("1999-12-10 00:00:00")
    r.Nameservers
    # => ["ns1.google.com", "ns2.google.com", ...]
  • CHANGED: A whois query now returns a custom Whois::Response object instead of a simple string. The previous interface is still supported, so you can continue to compare the response with Strings but this behavior will be deprecated in a future release.

    r = Whois::query("domain.com")
    # supported but deprecated in a future version
    r == "NOT FOUND"
    # explicitly cast the object to string instead
    r.to_s == "NOT FOUND"
    # or use one of the other Whois::Response methods.

Note. This is an experimental version (EAP) and it should not be considered production-ready. API might change at any time without previous notice.

Release 0.5.3

  • FIXED: self.valid_ipv6?(addr) references valid_v4? instead of valid_ipv4? (closes REDMINE-300)

  • FIXED: In some rare circumstances the server guessing fails to return the right server but returns an other server instead (closes REDMINE-260).

Release 0.5.2

  • SERVER: Sync definitions with Debian whois 4.7.36.

  • SERVER: Added new IPv4 allocations (whois 4.7.36).

  • SERVER: Added .ls, .mg, .mk, .tz and .uy TLD definitions (whois 4.7.36).

  • SERVER: Updated .jobs, .ms and .ph TLD definitions (whois 4.7.36).

  • SERVER: Removed .td TLD definition (whois 4.7.36).

  • NEW: Whois::Client.new now accepts a block and yields self.

    client = Whois::Client.new do |c|
      c.timeout = nil
    end
    client.query("google.com")
  • FIXED: DeprecatedWhoisTest are flagged with need_connectivity method because they require connectivity.

Release 0.5.1

  • NEW: Whois binary (closes REDMINE-271).

  • FIXED: 'rake coverage' task crashes.

  • FIXED: In case of thin server the client should concatenate all responses (closes REDMINE-259).

Release 0.5.0

  • NEW: Support for IPv4 and IPv6 (closes REDMINE-265).

  • NEW: Compatibility with existing GEM Whois 0.4.2 (closes REDMINE-266).

  • NEW: Deprecation warning for all the features that will be removed in Whois 0.6.0 (closes REDMINE-266).

  • NEW: Default timeout for any Whois query run from the client interface (closes REDMINE-269).

  • FIXED: Whois#whois defined as instance method but modules can't have instances!

  • FIXED: Whois::Server::Adapters::Verisign adapter always use “whois.crsnic.net” regardless the adapter set in the server definition.

  • SERVER: Updated .tv TLD definition (closes REDMINE-261).

  • SERVER: Updated .ae TLD definition (closes REDMINE-270).

Release 0.1.1

  • FIXED: Server#guess should raise ServerNotFound when query is not recognized.

  • FIXED: ServerError should inherits from Error and not StandardError.

  • CHANGED: Removed the Kernel#whois method because fights with many implementations of missing_method. Moved the method under the Whois namespace.

Release 0.1.0

  • First release

Jump to Line
Something went wrong with that request. Please try again.