nslookup_test.c 762 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <stdio.h>
  2. #include "hplatform.h" // inet_ntop
  3. #include "dns.h" // nslookup
  4. int main(int argc, char* argv[]) {
  5. if (argc < 2) {
  6. printf("Usage: cmd domain [nameserver]\n");
  7. return -1;
  8. }
  9. const char* domain = argv[1];
  10. const char* nameserver = "127.0.1.1";
  11. #ifdef OS_WIN
  12. WSADATA wsadata;
  13. WSAStartup(MAKEWORD(2,2), &wsadata);
  14. nameserver = "114.114.114.114";
  15. #endif
  16. if (argc > 2) {
  17. nameserver = argv[2];
  18. }
  19. uint32_t addrs[16];
  20. int naddr = nslookup(domain, addrs, 16, nameserver);
  21. if (naddr < 0) {
  22. return naddr;
  23. }
  24. char ip[16];
  25. for (int i = 0; i < naddr; ++i) {
  26. inet_ntop(AF_INET, (void*)&addrs[i], ip, 16);
  27. printf("%s\n", ip);
  28. }
  29. return 0;
  30. }