Documentation
WHOIS PARSER:  V2.0


System Requirements

  • Perl 5
  • Unix recommended
  • Telnet
  • Net-ParseWhois (easily installed)

Preliminaries

  • Determine the path to PERL 5 on your web server host.  Note that some web hosting companies run both PERL 4 and PERL 5.  Make ABSOLUTELY sure you are not setting this up under PERL 4.  Ask your administrator if you are not sure.
  • Unpack the tar archive on your desktop using a program that unpacks UNIX TAR ARCHIVES. If you don't have such a program then download WINZIP FREE from SHAREWARE.COM
  • After you have unpacked the TAR archive you will have a collection of folders and files on your desktop.  Now you have to do some basic editing of each of these files (or at least some of them).  Use a text editor such as wordpad, notepad, BBEdit, simpletext, or teachtext to edit the files.  These are NOT WORD PROCESSOR DOCUMENTS they are just simple TEXT files so don't save them as word processor documents or save them with extentions such as .txt or they will NOT WORK.   Note that there may be a some files inside of folders which are "blank".   This is normal.

Installing Net-ParseWhois

Upload and Install Perl Module

This script requires a perl module (included) called Net-ParseWhois.  Like any module the following instructions apply which are

  • Upload the .tar module
  • Telnet to your server and untar the module using the command
    • tar xvf Net-ParseWhois-0.62.tar
  • Next type the commands through telnet
    • perl Makefile.PL
    • make
    • make install

This completes the installation of the required perl module.  The installation can take place anywhere on your server.   I recommend making a special directory on your server called "modules" and putting this and all future modules inside of here so everything remains organized.   So now that you have the module  installed we can proceed with the script installation.

Preparing the CGI scripts

Define Path To PERL 5

The first step is to open up each and every file that has a .cgi extention and edit line number one of each script.  Each of the cgi scripts is written in perl 5. For your scripts to run they must know where perl 5 is installed on your web server. The path to perl 5 is defined to a cgi script in the first line of the file. In each of the cgi scripts the first line of code looks something like this:

#!/usr/bin/perl

If the path to perl 5 on your web server is different from /usr/bin/perl you must edit the first line of each cgi script to reflect the correct path. If the path to perl 5 is the same no changes are necessary. If you do not know the path to perl 5 ask the webmaster or system administrator at your server site.  

Configure the .cgi files

There is really nothing to configure in this script.  Simply make a directory on your webserver called "parser" and upload all the files into this directory.  The only files you will be using are the files named "piped" and "domains". 

  • piped contains the delimited parsed flatfile or output from running the parser
  • domains contains the domain names that you wish to parse

Chmod the files

  • Chmod all the .cgi files to 755.  Chmod everything else to 666 or 777 (list.txt and the lists directory)

Using The Program

  • To start using the system simply telnet to your server and execute parse.cgi.  The resulting output will be pipe delimited "|" which is easily imported into any common datase program such as XL or Access.

Net::ParseWhois Information

(For the most up-to-date docs, see the POD included with the latest Net::ParseWhois package.)

NAME

Net::ParseWhois - An extendable alternative to Net::Whois for parsing whois information.

DESCRIPTION

Disclaimer: this is my first CPAN module. Feedback, bugfixes, general comments, etc will be greatly appreciated.

Net::ParseWhois currently only supports domains from major TLDs and Registrars (.com, .net & .org -- see REGISTRARS for an exact list of who's supported) and tries to maintain backward interface compatability with Net::Whois.

Net::ParseWhois is my attempt at updating Net::Whois to support whois referrals. The author of Net::Whois (Dana Hudes) and I disgreed on how to solve the problem of parsing a distrubuted and non-standardized whois system, so I created this divergent module. (It's my understanding that Mr. Hudes wants to create an IETF draft and assumes registrars/registries will then follow it. I've simply taken the current not-so-defined situation and coded around it.)

Net::ParseWhois contains a generalized parsing system that can be configured for each Registrar, or completely overridden as needed. The class `Net::ParseWhois::Domain::Registrar' contains a list of known servers that could be returned in a whois referral, and specifies the specific class to use for each. When `Net::ParseWhois' receives a referral from the 'root' whois server, it creates the specified object and calls follow_referral on that object. If a domain is found and a referral given, but no Registrar class has been defined to handle that referral, the method *ok* will return true but method 'unknown_registrar' will also return true. Net::ParseWhois will still follow the referral, and the raw output from the registrar will be available via the method 'raw_whois_text'.

REGISTRARS

Currently supported:  supported registrars would cover upwards of 90% of the registrations that are out there.

  • whois.dotster.com - Dotster, Inc.
  • whois.register.com - Register.com, Inc.
  • whois.networksolutions.com - Network Solutions, Inc.
  • whois.opensrs.net - Tucows.com, Inc.
  • whois.domaindiscover.com - Tierranet, Inc.
  • whois.bulkregister.com - Bulkregister.com, Inc.
  • rs.domainbank.net - Domain Bank, Inc.

Not supported (with notes..):

  • whois.registrars.com - should be SIMPLE.
  • whois.nordnet.net - should be easy.
  • whois.namesecure.com - easy
  • whois.compuserve.com - easy
  • whois.itsyourdomain.com - easy
  • whois.namesdirect.com - easy
  • whois.enom.com - easy, but no nameserver or expire/updated data
  • whois.domaininfo.com - not too hard. follows same structure, but uses different template/style
  • whois.nameit.net - different style, not too hard
  • whois.yesnic.com - Korean based registrar, field's are labeled. would require work.
  • whois.gandi.net - French, RIPE style whois.
  • whois.dotearth.com - might be ugly. no newlines between different sections
  • whois.InternetNamesWW.com - yuck.
  • whois.corenic.net - lots of wierd fields, little conformity
  • whois.names4ever.com - no data?? down?

Known registrars that I haven't looked at --

  • whois.schlund.de
  • whois.registrars.com
  • whois.gandi.net
  • whois.doregi.com
  • whois.easyspace.com
  • whois.dotregistrar.com
  • whois.ibi.net
  • whois.OnlineNIC.com
  • whois.paycenter.com.cn
  • whois.domainpeople.com
  • whois.awregistry.net
  • whois.discount-domain.com
  • whois.dotearth.com
  • whois.psi-domains.com
  • whois.gkg.net
  • whois.enetregistry.com
  • whois.speednic.net
  • whois.domaininfo.com
  • whois.catalog.com
  • whois.oleane.net
  • whois.totalnic.net
  • whois.alldomains.com
  • whois.signaturedomains.com
  • whois.1stdomain.net
  • whois.enterprice.net
  • whois.stargateinc.com
  • whois.e-names.org
  • nswhois.domainregistry.com
  • whois.worldnet.net
  • whois.naame.com
  • whois.eastcom.com
  • whois.domainzoo.com

AUTHORS / ACKNOWLEDGMENTS

Net::ParseWhois is maintained by Abraham A. Ingersoll - abe@dajoba.com.This module is a based on Net::Whois, which is maintained by Dana Hudes (dhudes@hudes.org). Net::Whois was originally written by Chip Salzenberg (chip@pobox.com).

Thanks to:  Joseph Ingersoll for testing under ActivePerl. Curtis Poe for comments and bug testing.

Copyright 2000 Abraham A Ingersoll Some portions may be copyright 1998 Dana Hudes & Chip Salzenberg.  This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.