diff options
Diffstat (limited to 'usr/nslookup.c')
| -rw-r--r-- | usr/nslookup.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/usr/nslookup.c b/usr/nslookup.c new file mode 100644 index 0000000..6a531b8 --- /dev/null +++ b/usr/nslookup.c @@ -0,0 +1,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(); + } +} |
