About Whois
What is Whois?
Whois is an intelligent pure Ruby WHOIS client and parser.
It provides a flexible and programmable API to query WHOIS servers and look up IP/domain WHOIS information. It also offers command-line interface to run WHOIS queries from the console.
It is a OS-independent library and doesn’t require external C libraries or Gems: it is a 100% Ruby software with all the advantages and disadvantages that it involves.
Features
- Pure Ruby library, without any additional dependency
- Compatible with Ruby 1.8.6 and greater, including Ruby 1.9
- Successfully tested against multiple Ruby platforms and versions including Ruby, Ruby Enterprise Edition and MacRuby
- Ability to query registry data for IPv4, IPv6 and top level domains
- Ability to parse WHOIS responses
- Flexible and extensible interface (ex. You can define custom servers on the fly)
- Object oriented design
Acknowledgments
First of all, I would like to express my most sincere thanks to Cyril Mougel, the author of the first Ruby Whois Gem that has been available since 2007. Cyril has been kind enough to yield me the privilege of using the RubyForge Whois project and the Whois package name to publish this library.
To express all my gratitude, the Release 0.5.0 of the new Whois is 100% compatible with Cyril’s Whois (as of release 0.4.2).
Whois is largely inspired by other notable WHOIS projects, most of all the Debian Whois library written and maintained by Marco D’Itri. Other good ideas and design decisions come from the PERL Net::DRI package.
I would lie if I say I’m completely unaware of the other Ruby WHOIS projects. Before starting this Ruby WHOIS library I deeply investigated the available resources and, despite none of them was a good candidate for a refactoring, some of them expose a really cool API.
They didn’t directly influence this library or any design decision, but they have been a really interesting code-reading.
The parser architecture (yet to come) has been inspired by the PHPWhois[http://www.phpwhois.com] project. The authors puts lot of effort to create WHOIS-specific parsers normalizing the different responses in a single tree-based structure. So far, this is the only one open-source project that offers such this feature in all the programming language ecosystem.
Despite I spent weeks reading source code from the available WHOIS libraries, Whois has been built from scratch trying to focus on long-term maintainability and flexibility and cannot be considered a Ruby port of any of other existing WHOIS libraries.
Author
- Simone Carletti <weppos@weppos.net>