/WhoisLibrary

A very basic java library that can be used to perform some whois query (not all domain are actuallly supported)

Primary LanguageJava

WhoisLibrary

This is a java library that provides a simple yet powerful api to perform whois requests. It's currently in alpha status.

The requests it can perform actually are only for the following domains:

  • .com
  • .edu
  • .it
  • .info
  • .net
  • .org

WhoisLibrary doesn't only let you to get the raw result of a whois request. It's based on a templating system allowing to parse the raw data, the parser provide the results in a well-structured form by filling the WhoisEntry object. Since formats and responses may vary greatly, it's not possible to parse and organize all data from all TLDs. WhoisLibrary has been designed as a trade-off between data relevance, uniformity and completeness, but without bottlenecks preventing to create a custom version of the library that feets the specifical needs you have. Nonetheless WhoisEntry carry also with it the raw version of the data, that can get using the method WhoisEntry::getRawData(). This will allow to retrieve additional data without the need to modify the library at all.

Add support for a new TLD

The library template system is easy to use, and easy to extend, if you want to add a support for a new TLD, you have to just extend the Template class. Parse operations are filled into an array of objects derived from ParseOperation. If you add an unsupported domain or make some bugfix, please send us a patch.

There are actually three derived classes :

  • StringOperation

It's used to get strings from the input stream.

  • DateOperation

It's used to get, parse and convert dates from String to Date.

  • SkipOperation

This is optional, and should be use to instruct the parser to ignore a given number of lines.

The whois server URL is passed to the constructor as argument, you have to load operations using the loadOperations method, see the templates directory for more informations.

Once you created your Template, you have to add an entry into the file domain_map.properties, in the following format:

tld=fullclassName

For example:

org=org.whoislibrary.templates.TemplateOrg

TemplateGeneric is a start skeleton to develop a new template.

Compile

Using ant

You can create an executable jar using ant build system. If you haven't installed ant yet you can download it from here:

http://ant.apache.org/bindownload.cgi

Once you have installed it you can compile the program using (remember that if you haven't added the ant bin folder into yuour PATH you must use the full path: /yourpathtoant/bin/ant):

ant jar

To build an executable jar. Or you can just compile classes using:

ant compile

The binaries are stored into the bin folder of the project.

Using Maven

(DRAFT) If you haven't installed maven yet, you can download it here:

https://maven.apache.org/

Once you have installed it you can compile the program using (remember that if you haven't added the ant bin folder into yuour PATH you must use the full path: /yourpathtomaven/bin/mvn):

mvn clean package

The binaries are stored into the target folder.

Usage

You can test the library launching the WhoisMain class:

java WhoisMain

with no arguments it performs just three predefined whois query (for test)

If you specify a domain name, if the tld is implemented it gives you the result of your query (and then the three test queries):

java WhoisMain yourdomain.com

If you are using the jar file:

java -jar whois.jar yourdomain.com

Documentation

The documentation is available here: http://inuyasha82.github.io/WhoisLibrary/doc/index.html

Copyright and Licence

Authors: Ivan Gualandri Dario Casalinuovo

The library is released under the terms of GNU/GPL v3 License. If you like it please donate a coffee!

Flattr this git repo