summaryrefslogtreecommitdiffstats
path: root/usr.bin/whois
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2001-05-28 21:37:29 +0000
committerphk <phk@FreeBSD.org>2001-05-28 21:37:29 +0000
commitffbd616b1664630cdc5db3e56ceda71b79f12329 (patch)
tree207e64cb03520f94c624893dd8eaf02532e9a544 /usr.bin/whois
parent2595178f4bd2edc26423c897df7cb08e36dbfa6a (diff)
downloadFreeBSD-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/whois')
-rw-r--r--usr.bin/whois/whois.16
-rw-r--r--usr.bin/whois/whois.c19
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;
OpenPOWER on IntegriCloud