diff -ruN usr.bin/whois.orig/whois.1 usr.bin/whois/whois.1
--- usr.bin/whois.orig/whois.1	Tue Mar  4 11:46:57 2003
+++ usr.bin/whois/whois.1	Tue Mar  4 11:53:18 2003
@@ -40,7 +40,7 @@
 .Nd "Internet domain name and network number directory service"
 .Sh SYNOPSIS
 .Nm
-.Op Fl adgimpQrR6
+.Op Fl adgiImpQrR6
 .Op Fl c Ar country-code | Fl h Ar host
 .Ar name ...
 .Sh DESCRIPTION
@@ -142,6 +142,11 @@
 .Tn NIC
 handle in the query.)
 .Pp
+.It Fl I
+Use the Internet Assigned Numbers Authority
+.Pq Tn IANA
+database.
+It contains network information for top-level domains.
 .It Fl m
 Use the Route Arbiter Database
 .Pq Tn RADB
diff -ruN usr.bin/whois.orig/whois.c usr.bin/whois/whois.c
--- usr.bin/whois.orig/whois.c	Tue Mar  4 11:47:16 2003
+++ usr.bin/whois/whois.c	Tue Mar  4 11:53:18 2003
@@ -64,6 +64,7 @@
 #define	INICHOST	"whois.networksolutions.com"
 #define	DNICHOST	"whois.nic.mil"
 #define	GNICHOST	"whois.nic.gov"
+#define	IANAHOST	"whois.iana.org"
 #define	ANICHOST	"whois.arin.net"
 #define	RNICHOST	"whois.ripe.net"
 #define	PNICHOST	"whois.apnic.net"
@@ -100,7 +101,7 @@
 
 	country = host = qnichost = NULL;
 	flags = use_qnichost = 0;
-	while ((ch = getopt(argc, argv, "ac:dgh:impQrR6")) != -1) {
+	while ((ch = getopt(argc, argv, "ac:dgh:iImpQrR6")) != -1) {
 		switch (ch) {
 		case 'a':
 			host = ANICHOST;
@@ -120,6 +121,9 @@
 		case 'i':
 			host = INICHOST;
 			break;
+		case 'I':
+			host = IANAHOST;
+			break;
 		case 'm':
 			host = MNICHOST;
 			break;
@@ -310,7 +314,7 @@
 usage(void)
 {
 	fprintf(stderr,
-	    "usage: whois [-adgimpQrR6] [-c country-code | -h hostname] "
+	    "usage: whois [-adgiImpQrR6] [-c country-code | -h hostname] "
 	    "name ...\n");
 	exit(EX_USAGE);
 }

