#!/usr/bin/perl -w # reg created by Ross Hosman - version 1.0 use Getopt::Std; my %opts; getopts('ash', \%opts); if ($opts{s}) { foreach $name (@ARGV) { @whois = `whois $name`; @reg = grep(m/Registrar:/, @whois); @exp = grep(m/Expiration Date:/, @whois); chomp(@reg); chomp(@exp); print "$name - @reg - @exp\n"; } } elsif ($opts{a}) { foreach $name (@ARGV) { $name =~ s/\.[^.]+$//; @regcom = `whois $name.com`; @regnet = `whois $name.net`; @regorg = `whois $name.org`; @creg = grep(m/Registrar:/, @regcom); @cexp = grep(m/Expiration Date:/, @regcom); @nreg = grep(m/Registrar:/, @regnet); @nexp = grep(m/Expiration Date:/, @regnet); @oreg = grep(m/Sponsoring Registrar:/, @regorg); @oexp = grep(m/Expiration Date:/, @regorg); chomp(@creg); chomp(@cexp); chomp(@nreg); chomp(@nexp); chomp(@oreg); chomp(@oexp); foreach $creg (@creg) { $creg =~ s/Registrar://g; $creg =~ s/^\s+|\s+$//g; foreach $cexp (@cexp) { $cexp =~ s/Expiration Date://g; $cexp =~ s/^\s+|\s+$//g; print "$name.com - $creg - $cexp\n"; } } foreach $nreg (@nreg) { $nreg =~ s/Registrar://g; $nreg =~ s/^\s+|\s+$//g; foreach $nexp (@nexp) { $nexp =~ s/Expiration Date://g; $nexp =~ s/^\s+|\s+$//g; print "$name.net - $nreg - $nexp\n"; } } foreach $oreg (@oreg) { $oreg =~ s/Sponsoring Registrar://g; $oreg =~ s/^\s+|\s+$//g; foreach $oexp (@oexp) { $oexp =~ s/Expiration Date://g; $oexp =~ s/^\s+|\s+$//g; print "$name.org - $oreg - $oexp\n"; } } } } elsif ($opts{h}) { &usage; } else { foreach $name (@ARGV) { if ($name =~ /\.(com|net)/) { @whois = grep(m/Whois Server:/, `whois $name`); chomp(@whois); $whois[0] =~ s/Whois Server: //g; @reg = `whois -h $whois[0] $name`; print "@reg"; } else { @reg = `whois $name`; print "@reg"; } } } sub usage { print "usage: reg domain.com - full whois\n"; print "./reg -h - the help screen\n"; print "./reg -s domain1.com domain2.com ... - short lookup on each domain\n"; print "./reg -a domain1 domain2 ... - lookup on .com/.net/.org for each domain\n"; }