This seems quite a useful database now that there are 500+ TLDs,
OK to add a flag to use it more easily from whois(1)?
Index: whois.1
===================================================================
RCS file: /cvs/src/usr.bin/whois/whois.1,v
retrieving revision 1.33
diff -u -p -r1.33 whois.1
--- whois.1 9 Apr 2015 19:29:53 -0000 1.33
+++ whois.1 2 Nov 2015 18:12:34 -0000
@@ -38,7 +38,7 @@
.Nd Internet domain name and network number directory service
.Sh SYNOPSIS
.Nm whois
-.Op Fl AadgilmPQRr
+.Op Fl AadgIilmPQRr
.Oo
.Fl c Ar country-code | Fl h Ar host
.Oc
@@ -156,6 +156,11 @@ or
to the
.Tn NIC
handle in the query.)
+.It Fl I
+Use the Internet Assigned Numbers Authority
+.Pq Tn whois.iana.org
+root zone database.
+It contains information about top-level domains.
.It Fl l
Use the Latin American and Caribbean IP address Regional Registry
.Pq Tn LACNIC
Index: whois.c
===================================================================
RCS file: /cvs/src/usr.bin/whois/whois.c,v
retrieving revision 1.51
diff -u -p -r1.51 whois.c
--- whois.c 2 Nov 2015 17:16:35 -0000 1.51
+++ whois.c 2 Nov 2015 18:12:34 -0000
@@ -58,6 +58,7 @@
#define AFNICHOST "whois.afrinic.net"
#define BNICHOST "whois.registro.br"
#define PDBHOST "whois.peeringdb.com"
+#define IANAHOST "whois.iana.org"
#define QNICHOST_TAIL ".whois-servers.net"
#define WHOIS_PORT "whois"
@@ -82,7 +83,7 @@ main(int argc, char *argv[])
country = host = NULL;
flags = rval = 0;
- while ((ch = getopt(argc, argv, "aAc:dgh:ilmp:PqQrR")) != -1)
+ while ((ch = getopt(argc, argv, "aAc:dgh:iIlmp:PqQrR")) != -1)
switch (ch) {
case 'a':
host = ANICHOST;
@@ -105,6 +106,9 @@ main(int argc, char *argv[])
case 'i':
host = INICHOST;
break;
+ case 'I':
+ host = IANAHOST;
+ break;
case 'l':
host = LNICHOST;
break;
@@ -343,7 +347,7 @@ usage(void)
extern char *__progname;
fprintf(stderr,
- "usage: %s [-AadgilmPQRr] [-c country-code | -h host] "
+ "usage: %s [-AadgIilmPQRr] [-c country-code | -h host] "
"[-p port] name ...\n", __progname);
exit(1);
}