aboutsummaryrefslogtreecommitdiffstats
path: root/c/nslookup.c
blob: 6a531b849887358609f6ab6ecfa7e6468317991c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "resolve.h"
/* nslookup HOST - resolve a hostname to an IPv4 address via DNS over UDP.
   All the DNS logic lives in resolve.h (shared with wget). */

static unsigned char namebuf[64];     /* first so it lands past the arg at 0xA000 */
static unsigned char ip[4];

void main(void) {
    char *host;
    unsigned char i;
    host = getargs();
    if (!host || !*host) { puts("usage: nslookup HOST"); nl(); sexit(1); }
    for (i = 0; host[i] && i < 63; i++) namebuf[i] = (unsigned char)host[i];
    namebuf[i] = 0;

    if (resolve((char *)namebuf, ip)) {
        puts((char *)namebuf); puts(" -> ");
        for (i = 0; i < 4; i++) { putu(ip[i]); if (i < 3) putc('.'); }
        nl();
    } else {
        puts("nslookup: cannot resolve "); puts((char *)namebuf); nl();
    }
}