Advertisement
Guest User

Untitled

a guest
Jun 30th, 2012
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <netdb.h>
  4. #include <netinet/in.h>
  5. #include <sys/socket.h>
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     struct addrinfo *res, *result;
  10.     int error;
  11.  
  12.     if(argc < 2)
  13.         return EXIT_FAILURE;
  14.  
  15.     /* resolve the domain name into a list of addresses */
  16.     error = getaddrinfo(argv[1], NULL, NULL, &result);
  17.     if (error != 0)
  18.     {
  19.         fprintf(stderr, "error in getaddrinfo: %s\n", gai_strerror(error));
  20.         return EXIT_FAILURE;
  21.     }
  22.     else
  23.     {
  24.         printf("Looked up: %s\n", argv[1]);
  25.     }
  26.  
  27.     /* loop over all returned results and do inverse lookup */
  28.     for (res = result; res != NULL; res = res->ai_next)
  29.     {
  30.         char hostname[NI_MAXHOST] = "";
  31.  
  32.         error = getnameinfo(res->ai_addr, res->ai_addrlen, hostname, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
  33.         if (error != 0)
  34.         {
  35.             fprintf(stderr, "error in getnameinfo: %s\n", gai_strerror(error));
  36.             continue;
  37.         }
  38.  
  39.         if (*hostname != '\0')
  40.             printf("hostname: %s\n", hostname);
  41.     }
  42.  
  43.     freeaddrinfo(result);
  44.     return EXIT_SUCCESS;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement