diff options
author | phk <phk@FreeBSD.org> | 2001-05-28 21:37:29 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2001-05-28 21:37:29 +0000 |
commit | ffbd616b1664630cdc5db3e56ceda71b79f12329 (patch) | |
tree | 207e64cb03520f94c624893dd8eaf02532e9a544 /usr.bin | |
parent | 2595178f4bd2edc26423c897df7cb08e36dbfa6a (diff) | |
download | FreeBSD-src-ffbd616b1664630cdc5db3e56ceda71b79f12329.zip FreeBSD-src-ffbd616b1664630cdc5db3e56ceda71b79f12329.tar.gz |
Direct queries for IP numbers to ARIN. It would be nice if we could
send them to APNIC/RIPE intelligently, but we can't at this time so
fallback to ARIN and depend on them telling the user where to look.
Maybe we need a .whoisrc file...
PR: 24707
Submitted by: Mike Barcroft mike@q9media.com
MFC after: 1 week
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/whois/whois.1 | 6 | ||||
-rw-r--r-- | usr.bin/whois/whois.c | 19 |
2 files changed, 19 insertions, 6 deletions
diff --git a/usr.bin/whois/whois.1 b/usr.bin/whois/whois.1 index 5072473..debe3b1 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 af03a12..3e31a65 100644 --- a/usr.bin/whois/whois.c +++ b/usr.bin/whois/whois.c @@ -49,6 +49,7 @@ static const char rcsid[] = #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> +#include <ctype.h> #include <err.h> #include <netdb.h> #include <stdio.h> @@ -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; |