VGWhoIs - ViaThinkSoft Global WhoIs
What is VGWhoIs?
VGWhoIs is a fork of the tool GWhoIs (currently not actively developed).
It allows users to find information about domains, IP addresses, ASN numbers etc by querying the best fitting
WhoIs service automatically. The information about the whois services is stored in a pattern file and
can be altered or extended by new pattern files.
The usage is pretty simple:
vgwhois example.com
How to install
Possibility 1: Install via SVN (recommended)
- Make sure "svn" is installed on your system (run
apt-get install subversion
to install)
- Navigate to a directory where you want to install VGWhoIs (if you want that other users can use the tool, place it in a directory everybody can access)
- Run
svn co https://svn.viathinksoft.com/svn/vgwhois/trunk/
to download everything on your system
- Run
./install.sh
: This will install additional dependencies and create symlinks to /usr/bin, /usr/sbin and /usr/share/man.
- You should now be able to use VGWhoIs. Try
vgwhois example.com
or man vgwhois
for help.
- Using
svn update
you can always update your installation.
Possibility 2: Install via Tarball
- Download the archive with the latest SVN version here
- Navigate to a directory where you want to install VGWhoIs (if you want that other users can use the tool, place it in a directory everybody can access)
- Run
tar -zxvf vgwhois_svn.tar.gz
to unpack everything
- Run
./install.sh
: This will install additional dependencies and create symlinks to /usr/bin, /usr/sbin and /usr/share/man.
- You should now be able to use VGWhoIs. Try
vgwhois example.com
or man vgwhois
for help.
Why a fork?
There are a few very important reasons why ViaThinkSoft continued the development of GWhoIs in the last 14 years:
- The original tool GWhoIs has a completely outdated database. In times of the new gTLD rollout, where every month new TLDs are created, this is a very big drawback. ViaThinkSoft continued the development of GWhoIs and added several new functionalities and completely updated the whole database. Maintainance tools are able to automatically update the database when new gTLDs are added to the root zone.
- Some NICs only process queries through a CGI interface, so that the output has to be parsed in a complex and unsafe way. GWhoIs only presents a textdump of these CGI results which are very confusing and nearly not readable. It doesn't support individual regular expression parsing for these CGI pages. The fork by ViaThinkSoft is able to handle every TLD individually using sub-programs.
- Reported bugs are not being fixed over a long time
We have tried many times to contact the author, but we didn't get a reply. We wanted to merge our results, but it seems as if a fork is the only possibility at the moment.
Copyright / License
Main program
2010-2024 Daniel Marschall, ViaThinkSoft (fork)
based on the code 1998-2012 Juliane Holzt and contributors
Some early parts by Lutz Donnerhacke.
Licensed under the terms of GPLv2
Maintenance / Developer utilities, shared PHP libraries and some sub programs
2010-2024 Daniel Marschall, ViaThinkSoft
Licensed under the terms of GPLv2
This package includes following third-party-products:
Important changes
Some of the changes are:
- Dramatically updated domain- and handle-pattern files
- Added new method "
program
" which invokes a script which can do complex parsing of a query (called subprogram). This makes it possible to enhance the parsing for a NIC without changing the main program code.
- Full IPv6 support (CIDR notation in pattern files instead of RegEx, correct address parsing, short notation as well as nested IPv4 address notation accepted etc)
- Teredo and 6to4 address decoding subprograms
- TLDs can be accessed without "tld" prefix
- Added support for querying AS-numbers
- Possibility to query some numeric ranges, e.g.
*AS:100-200
will recognize AS100, AS101 until AS200 , as well as AS000200.
- Completely renewed TLD, IPv4 and IPv6 data from IANA.
- Checked many, many NICs and updated pattern data
- UTF-8 output to support the output of NICs like CNNIC
- Detect the output encoding, convert everything to UTF-8 and adds a BOM to VGWhoIs's output if it is non-ASCII
- Updated html-parser to format pre- and textarea- tags correctly
- Bonus (and example for a "program" extension): OID resolving
- Native OID pattern support
- To increase the code quality, the whole code was re-formated (tabs instead of spaces, bracket positions etc pp) as well as usage of "use strict" and "use warnings" (which caused the usage of "my"). Also the obsolete
&foo()
was updated to foo()
.
- Following basic rwhois (referral whois) referrals, so that information about the specific subnetwork are now shown
- ARIN IP/AS objects have now more detailled informations instead of just 2 lines! (Parameters +)
- RIPE network objects do not have filtered email-addresses anymore (Parameter -B)
- E-Mail-Addresses are now protected by default (disable with CLI argument flag -e)
- Extended manual (
man vgwhois
)
- Development and Maintenance Tools
- pattern-generator: Possibility to automatically update the IPv4, IPv6, ASN, TLD and new gTLDs pattern files
- qa-monitor: A program which checks if the pattern files or the tool itself needs manual updates.
- whois-ping: A program which checks all whois servers and detects whois servers which are broken for a specific amount of time.
- (Soon) Some manual tools for testing and finding whois servers.
- Split up the large pattern file into multiple files in directory pattern to make it much more clearer and to allow pattern generators to handle files individually
- Split up the main executable
/usr/bin/vgwhois
in Perl modules, and outsourced NIC specific code (e.g. wwwbz
) into subprograms in main/subprograms/
- The copyright file is now machine readable.
Note: After development of our first release, we will conclude all changes into a large changelog.
Dependencies
The current version of the package has currently following dependencies (there might be some more):
- perl (used by VGWhoIs main program. NEW: also used by subprograms)
- libwww-perl (cpan LWP::Simple; used by VGWhoIs main program)
- libnet-libidn-perl (cpan Net::LibIDN; used by VGWhoIs main program)
- curl (used by some parts of the VGWhoIs main program. NEW: used by pattern generator and subprograms)
- lynx-cur (used by some parts of the VGWhoIs main program)
- NEW: libnet-ip-perl (cpan Net::IP; used for IPv6 interpretation by Teredo subprogram and VGWhoIs main program)
- NEW: libnet-dns-perl (cpan Net::DNS; used by Teredo subprogram)
- NEW: libmath-bigint-gmp-perl (cpan Math::BigInt; used for IPv6 masking by VGWhoIs main program)
- NEW: php-cli (used by subprograms and pattern-generator)
- NEW: php-gmp (used by IPv6 pattern generator)
- NEW: netcat (used by the whois-ping maintainance program)
- NEW: php7.0-sqlite3 (used by the whois-ping maintainance program)
Source code
VGWhoIs is written in Perl and PHP (CLI).
Browse the source code
Quality Assurance
Publicly available tools
The package by ViaThinkSoft includes several maintenance tools which detect dead or moved whois servers.
Using "Quality Assurance" monitors, the current status of the project can be monitored and assessed.
Click here to see the nightly results of the QA tools
Internal tools
These tools are currently only used locally and are not part of the package.