Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#!/bin/rc
2
# iwhois [-n] domain - print registration data for domain
3
rfork e
4
if (~ $#* 1 && ~ $1 -n)
5
	noboiler=yes
6
person=`{echo $1|sed s/@.*//}
7
fn boilerplate { sed -n '/^[	 ]*[A-Za-z][A-Za-z]*:$/,$p' $* }
8
 
9
switch($1){
10
case *@*
11
	machine=`{echo $1|sed s/.*@//}
12
case *.ca
13
	machine=whois.cira.ca
14
	fn boilerplate { grep -v ':[	 ]*$' $* }
15
case *.us
16
	machine=whois.nic.us
17
	fn boilerplate { sed '/^>* Whois database was last updated on/,$d' $* }
18
case *.co.uk *.net.uk *.org.uk
19
	machine=whois.nic.uk
20
	fn boilerplate { sed '/^ +WHOIS database last updated at/,$d' $* }
21
case *.ac.uk
22
	machine=whois.ja.net
23
case *.au
24
	machine=whois.aunic.net
25
	fn boilerplate { grep -v ':[	 ]*$' $* }
26
case *.be
27
	machine=whois.dns.be
28
	person='-T dn '^$person
29
	fn boilerplate { cat $* }
30
case *.cn
31
	machine=whois.cnnic.net.cn
32
	fn boilerplate { cat $* }
33
case *.de
34
	machine=whois.denic.de
35
	person='-T dn '^$person
36
	fn boilerplate { cat $* }
37
case *.dk
38
	machine=whois.dk-hostmaster.dk
39
	fn boilerplate { grep -v '^#' $* }
40
case *.es
41
	echo no known whois server for .es
42
	exit
43
case *.fr
44
	machine=whois.nic.fr
45
	fn boilerplate { grep -v '^%%' $* }
46
case *.in
47
	machine=whois.inregistry.net
48
	fn boilerplate { cat $* }
49
case *.jp
50
	machine=whois.jprs.jp
51
	person=$person^'/e'
52
	fn boilerplate { cat $* }
53
case *.se
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 $* }
59
case *
60
	machine=whois.internic.net	# alternate: whois.networksolutions.com
61
	fn boilerplate { cat $* }
62
}
63
if (~ $noboiler yes)
64
	fn boilerplate { cat $* }
65
file=/tmp/iwhois$pid
66
fn sigexit {
67
	rm -f $file
68
}
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 }
72
switch($#x){
73
case 0
74
	;			# e.g., for .ca
75
case 1
76
	# chase the referral chain
77
	echo $person | telnet -nr tcp!$x!whois > $file
78
case *
79
#	echo $0: buggery: `{echo $x | tr ' ' '\12' | sort -u} >[1=2]
80
	echo $person | telnet -nr tcp!^$x(1)^!whois > $file
81
}
82
if (test ! -s $file) {
83
	echo $0: broken whois server tcp!$x!whois returned no data >[1=2]
84
	exit broken
85
}
86
boilerplate $file
87
rm $file