123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #!/bin/rc
- # iwhois [-n] domain - print registration data for domain
- rfork e
- if (~ $#* 1 && ~ $1 -n)
- noboiler=yes
- 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 *.be
- machine=whois.dns.be
- person='-T dn '^$person
- fn boilerplate { cat $* }
- case *.cn
- machine=whois.cnnic.net.cn
- fn boilerplate { cat $* }
- 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 *.es
- echo no known whois server for .es
- exit
- case *.fr
- machine=whois.nic.fr
- fn boilerplate { grep -v '^%%' $* }
- case *.in
- machine=whois.inregistry.net
- fn boilerplate { cat $* }
- case *.jp
- machine=whois.jprs.jp
- person=$person^'/e'
- fn boilerplate { cat $* }
- case *.se
- machine=whois.nic-se.se
- fn boilerplate { grep -v '^#' $* | uniq }
- case [0-9]*.[0-9]*.[0-9]*.[0-9]*
- machine=whois.arin.net
- fn boilerplate { cat $* }
- case *
- machine=whois.internic.net # alternate: whois.networksolutions.com
- fn boilerplate { cat $* }
- }
- if (~ $noboiler yes)
- fn boilerplate { cat $* }
- file=/tmp/iwhois$pid
- fn sigexit {
- rm -f $file
- }
- echo $person | telnet -nr tcp!$machine!whois > $file
- x=`{ sed -n -e 's/.*Whois Server: (.*)/\1/p' \
- -e 's;.*ReferralServer: whois://(.*)(:43)?;\1;p' $file }
- switch($#x){
- case 0
- ; # e.g., for .ca
- case 1
- # chase the referral chain
- echo $person | telnet -nr tcp!$x!whois > $file
- case *
- # echo $0: buggery: `{echo $x | tr ' ' '\12' | sort -u} >[1=2]
- echo $person | telnet -nr tcp!^$x(1)^!whois > $file
- }
- if (test ! -s $file) {
- echo $0: broken whois server tcp!$x!whois returned no data >[1=2]
- exit broken
- }
- boilerplate $file
- rm $file
|