--- /dev/null
+int main(int argc, char *argv[])
+{
+/*
+ * Variables definition
+ */
+ int i;
+ struct hostent *data;
+ char **alias;
+ char *addr;
+ char buffer[INET6_ADDRSTRLEN];
+ ...
+ if ((argc - optind) != 1) {
+ printf("Wrong number of arguments %d\n", argc - optind);
+ usage();
+ }
+ data = gethostbyname(argv[1]);
+ if (data == NULL) {
+ herror("Errore di risoluzione");
+ exit(1);
+ }
+ printf("Canonical name %s\n", data->h_name);
+ alias = data->h_aliases;
+ while (*alias != NULL) {
+ printf("Alias %s\n", *alias);
+ alias++;
+ }
+ if (data->h_addrtype == AF_INET) {
+ printf("Address are IPv4\n");
+ } else if (data->h_addrtype == AF_INET6) {
+ printf("Address are IPv6\n");
+ } else {
+ printf("Tipo di indirizzo non valido\n");
+ exit(1);
+ }
+ alias = data->h_addr_list;
+ while (*alias != NULL) {
+ addr = inet_ntop(data->h_addrtype, *alias, buffer, sizeof(buffer));
+ printf("Indirizzo %s\n", addr);
+ alias++;
+ }
+ exit(0);
+}