2 # iwhois [-n] domain - print registration data for domain
4 if (~ $#* 1 && ~ $1 -n)
6 person=`{echo $1|sed s/@.*//}
7 fn boilerplate { sed -n '/^[ ]*[A-Za-z][A-Za-z]*:$/,$p' $* }
11 machine=`{echo $1|sed s/.*@//}
14 fn boilerplate { grep -v ':[ ]*$' $* }
17 fn boilerplate { sed '/^>* Whois database was last updated on/,$d' $* }
18 case *.co.uk *.net.uk *.org.uk
20 fn boilerplate { sed '/^ +WHOIS database last updated at/,$d' $* }
24 machine=whois.aunic.net
25 fn boilerplate { grep -v ':[ ]*$' $* }
28 person='-T dn '^$person
29 fn boilerplate { cat $* }
31 machine=whois.cnnic.net.cn
32 fn boilerplate { cat $* }
34 machine=whois.denic.de
35 person='-T dn '^$person
36 fn boilerplate { cat $* }
38 machine=whois.dk-hostmaster.dk
39 fn boilerplate { grep -v '^#' $* }
41 echo no known whois server for .es
45 fn boilerplate { grep -v '^%%' $* }
47 machine=whois.inregistry.net
48 fn boilerplate { cat $* }
52 fn boilerplate { cat $* }
54 machine=whois.nic-se.se
55 fn boilerplate { grep -v '^#' $* | uniq }
56 case [0-9]*.[0-9]*.[0-9]*.[0-9]*
57 machine=whois.arin.net
58 fn boilerplate { cat $* }
60 machine=whois.internic.net # alternate: whois.networksolutions.com
61 fn boilerplate { cat $* }
64 fn boilerplate { cat $* }
69 echo $person | telnet -nr tcp!$machine!whois > $file
70 x=`{ sed -n -e 's/.*Whois Server: (.*)/\1/p' \
71 -e 's;.*ReferralServer: whois://(.*)(:43)?;\1;p' $file }
76 # chase the referral chain
77 echo $person | telnet -nr tcp!$x!whois > $file
79 # echo $0: buggery: `{echo $x | tr ' ' '\12' | sort -u} >[1=2]
80 echo $person | telnet -nr tcp!^$x(1)^!whois > $file
82 if (test ! -s $file) {
83 echo $0: broken whois server tcp!$x!whois returned no data >[1=2]