Merge branch 'master' of ssh://gapil.gnulinux.it/srv/git/gapil
[gapil.git] / listati / mygethost.c
1 int main(int argc, char *argv[]) 
2 {
3 /* 
4  * Variables definition
5  */
6     int i;
7     struct hostent *data;
8     char **alias;
9     char *addr;
10     char buffer[INET6_ADDRSTRLEN];
11     ...
12     /*
13      * Main Body
14      */
15     if ((argc - optind) != 1) {
16         printf("Wrong number of arguments %d\n", argc - optind);
17         usage();
18     }
19     /* get resolution */
20     data = gethostbyname(argv[1]);
21     if (data == NULL) {
22         herror("Errore di risoluzione");
23         exit(1);
24     }
25     printf("Canonical name %s\n", data->h_name);
26     alias = data->h_aliases;
27     while (*alias != NULL) {
28         printf("Alias %s\n", *alias);
29         alias++;
30     }
31     if (data->h_addrtype == AF_INET) {
32         printf("Address are IPv4\n");
33     } else if (data->h_addrtype == AF_INET6) {
34         printf("Address are IPv6\n");
35     } else {
36         printf("Tipo di indirizzo non valido\n");
37         exit(1);
38     }
39     alias = data->h_addr_list;
40     while (*alias != NULL) {
41         addr = inet_ntop(data->h_addrtype, *alias, buffer, sizeof(buffer));
42         printf("Indirizzo %s\n", addr);
43         alias++;
44     }    
45     exit(0);
46 }