35 lines
738 B
C
35 lines
738 B
C
|
#include <stdio.h>
|
||
|
|
||
|
#include "hplatform.h" // inet_ntop
|
||
|
#include "dns.h" // nslookup
|
||
|
|
||
|
int main(int argc, char* argv[]) {
|
||
|
if (argc < 2) {
|
||
|
printf("Usage: nslookup domain [nameserver]\n");
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
const char* domain = argv[1];
|
||
|
const char* nameserver = "127.0.1.1";
|
||
|
#ifndef OS_LINUX
|
||
|
nameserver = "114.114.114.114";
|
||
|
// nameserver = "8.8.8.8";
|
||
|
#endif
|
||
|
|
||
|
if (argc > 2) {
|
||
|
nameserver = argv[2];
|
||
|
}
|
||
|
|
||
|
uint32_t addrs[16];
|
||
|
int naddr = nslookup(domain, addrs, 16, nameserver);
|
||
|
if (naddr < 0) {
|
||
|
return naddr;
|
||
|
}
|
||
|
char ip[16];
|
||
|
for (int i = 0; i < naddr; ++i) {
|
||
|
inet_ntop(AF_INET, (void*)&addrs[i], ip, 16);
|
||
|
printf("%s\n", ip);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|