2 # iwhois [-n] domain - print registration data for domain
5 if (! ~ $#* 0 && ~ $1 -n){
9 person=`{echo $1|sed s/@.*//}
10 fn boilerplate { sed -n '/^[ ]*[A-Za-z][A-Za-z]*:$/,$p' $* }
14 machine=`{echo $1|sed s/.*@//}
17 fn boilerplate { grep -v ':[ ]*$' $* }
20 fn boilerplate { sed '/^>* Whois database was last updated on/,$d' $* }
21 case *.co.uk *.net.uk *.org.uk
23 fn boilerplate { sed '/^ +WHOIS database last updated at/,$d' $* }
27 machine=whois.aunic.net
28 fn boilerplate { grep -v ':[ ]*$' $* }
31 person='-T dn '^$person
32 fn boilerplate { cat $* }
34 machine=whois.cnnic.net.cn
35 fn boilerplate { cat $* }
37 machine=whois.denic.de
38 person='-T dn '^$person
39 fn boilerplate { cat $* }
41 machine=whois.dk-hostmaster.dk
42 fn boilerplate { grep -v '^#' $* }
44 echo no known whois server for .es >[1=2]
45 exit '.es not supported'
48 fn boilerplate { grep -v '^%%' $* }
50 machine=whois.inregistry.net
51 fn boilerplate { cat $* }
55 fn boilerplate { cat $* }
58 fn boilerplate { sed '/^>>> Last update of WHOIS database/,$d' $* }
60 machine=whois.nic-se.se
61 fn boilerplate { grep -v '^#' $* | uniq }
62 case [0-9]*.[0-9]*.[0-9]*.[0-9]*
63 machine=whois.arin.net
64 fn boilerplate { cat $* }
66 machine=whois.internic.net # alternate: whois.networksolutions.com
67 fn boilerplate { cat $* }
70 fn boilerplate { cat $* }
75 echo $person | telnet -nr tcp!$machine!whois > $file
76 x=`{ sed -n -e 's/.*Whois Server: (.*)/\1/p' \
77 -e 's;.*ReferralServer: whois://(.*)(:43)?;\1;p' $file }
82 # chase the referral chain
83 echo $person | telnet -nr tcp!$x!whois > $file
85 # echo $0: buggery: `{echo $x | tr ' ' '\12' | sort -u} >[1=2]
86 echo $person | telnet -nr tcp!^$x(1)^!whois > $file
88 if (test ! -s $file) {
89 echo $0: broken whois server tcp!$x!whois returned no data >[1=2]