nslookup_test.c 738 B

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