#!/bin/rc
# iwhois domain - print registration data for domain
rfork e
person=`{echo $1|sed s/@.*//}
fn boilerplate { sed -n '/^[ ]*[A-Za-z][A-Za-z]*:$/,$p' $* }
switch($1){
case *@*
machine=`{echo $1|sed s/.*@//}
case *.ca
machine=whois.cira.ca
fn boilerplate { grep -v ':[ ]*$' $* }
case *.us
machine=whois.nic.us
fn boilerplate { sed '/^>* Whois database was last updated on/,$d' $* }
case *.co.uk *.net.uk *.org.uk
machine=whois.nic.uk
fn boilerplate { sed '/^ +WHOIS database last updated at/,$d' $* }
case *.ac.uk
machine=whois.ja.net
case *.au
machine=whois.aunic.net
fn boilerplate { grep -v ':[ ]*$' $* }
case *.fr
machine=whois.nic.fr
fn boilerplate { grep -v '^%%' $* }
case *.de
machine=whois.denic.de
person='-T dn '^$person
fn boilerplate { cat $* }
case *.dk
machine=whois.dk-hostmaster.dk
fn boilerplate { grep -v '^#' $* }
case *.se
machine=whois.nic-se.se
fn boilerplate { grep -v '^#' $* | uniq }
case *.es
echo no known whois server for .es
exit
case *.jp
machine=whois.jprs.jp
person=$person^'/e'
fn boilerplate { cat $* }
case *.in
machine=whois.inregistry.net
fn boilerplate { cat $* }
case *.cn
machine=whois.cnnic.net.cn
fn boilerplate { cat $* }
case *
machine=whois.internic.net # alternate: whois.networksolutions.com
fn boilerplate { cat $* }
}
file=/tmp/iwhois$pid
fn sigexit {
rm -f $file
}
echo $person | telnet -nr tcp!$machine!whois > $file
x=`{ sed -n 's/.*Whois Server: (.*)/\1/p' $file }
switch($x){
case ''
; # e.g., for .ca
case *' '*
echo $0: buggery: $x >[1=2]
exit botch
case *
echo $person | telnet -nr tcp!$x!whois > $file
}
boilerplate $file
rm $file
|