diff --git a/usr.bin/whois/whois.1 b/usr.bin/whois/whois.1 index 507247386758..debe3b156803 100644 --- a/usr.bin/whois/whois.1 +++ b/usr.bin/whois/whois.1 @@ -86,6 +86,12 @@ of the supplied (single) argument, and appending .Qq Li .whois-servers.net . This effectively allows a suitable whois server to be selected automatically for a large number of TLDs. +.Pp +In the event that an IP +address is specified, the whois server will default to the American +Registry for Internet Numbers +.Pq Tn ARIN . +.Pp If no required .Pa whois-servers.net subdomain found, fallback to diff --git a/usr.bin/whois/whois.c b/usr.bin/whois/whois.c index af03a1235b27..3e31a6550e3f 100644 --- a/usr.bin/whois/whois.c +++ b/usr.bin/whois/whois.c @@ -49,6 +49,7 @@ static const char rcsid[] = #include #include #include +#include #include #include #include @@ -166,13 +167,19 @@ main(argc, argv) } } if (j != 0) { - qnichost = (char *) calloc(i - j + 1 + - strlen(QNICHOST_TAIL), sizeof(char)); - if (!qnichost) { - err(1, "calloc"); + if (isdigit(*(*argv + j + 1))) { + (void) asprintf(&qnichost, "%s", + ANICHOST); + } else { + qnichost = (char *) calloc(i - j + + 1 + strlen(QNICHOST_TAIL), + sizeof(char)); + if (!qnichost) { + err(1, "calloc"); + } + strcpy(qnichost, *argv + j + 1); + strcat(qnichost, QNICHOST_TAIL); } - strcpy(qnichost, *argv + j + 1); - strcat(qnichost, QNICHOST_TAIL); memset(&hints, 0, sizeof(hints)); hints.ai_flags = 0;