nslookup_test.c 823 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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: nslookup 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. #endif
  15. #ifndef OS_LINUX
  16. nameserver = "114.114.114.114";
  17. // nameserver = "8.8.8.8";
  18. #endif
  19. if (argc > 2) {
  20. nameserver = argv[2];
  21. }
  22. uint32_t addrs[16];
  23. int naddr = nslookup(domain, addrs, 16, nameserver);
  24. if (naddr < 0) {
  25. return naddr;
  26. }
  27. char ip[16];
  28. for (int i = 0; i < naddr; ++i) {
  29. inet_ntop(AF_INET, (void*)&addrs[i], ip, 16);
  30. printf("%s\n", ip);
  31. }
  32. return 0;
  33. }