|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)nsquery.c 4.2 (Berkeley) 11/21/87";
3: #endif
4:
5: /*
6: * Copyright (c) 1986 Regents of the University of California
7: * All Rights Reserved
8: */
9:
10: #include <stdio.h>
11: #include <sys/types.h>
12: #include <arpa/nameser.h>
13: #include <netdb.h>
14: #include <sys/socket.h>
15: #include <netinet/in.h>
16: #include <resolv.h>
17:
18: struct state orig;
19: extern struct state _res;
20: extern int h_errno;
21:
22: main(c, v)
23: char **v;
24: {
25: char h[32];
26: register struct hostent *hp;
27: register char *s;
28:
29: gethostname(h, 32);
30: s = h;
31: if (c < 2) {
32: fprintf(stderr, "Usage: lookup host [server]\n");
33: exit(1);
34: }
35: if (c > 2)
36: s = v[2];
37:
38: hp = gethostbyname(s);
39: if (hp == NULL) {
40: herror(h_errno);
41: exit(1);
42: }
43: printanswer(hp);
44:
45: _res.nsaddr.sin_addr = *(struct in_addr *)hp->h_addr;
46: _res.options &= ~RES_DEFNAMES;
47:
48: hp = gethostbyname(v[1]);
49: if (hp == NULL) {
50: herror(h_errno);
51: exit(1);
52: }
53: printanswer(hp);
54: exit(0);
55: }
56:
57: printanswer(hp)
58: register struct hostent *hp;
59: {
60: register char **cp;
61: extern char *inet_ntoa();
62:
63: printf("Name: %s\n", hp->h_name);
64: printf("Address: %s\n", inet_ntoa(*(struct in_addr *)hp->h_addr));
65: printf("Aliases:");
66: for (cp = hp->h_aliases; cp && *cp && **cp; cp++)
67: printf(" %s", *cp);
68: printf("\n\n");
69: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.