Bonjour,
j'aimerais afficher les noms contenus dans h_addr_list (dans une boucle), mais j'obtiens des erreurs d'affichage : certains caractères n'ont pas été bien convertis.
Par exemple, je veux lister les adresses IP et les noms des machines qui se trouvent à l'adresse www.hotmail.com.
J'obtiens ce résultat :
Voici les sources :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 www.hotmail.com : Nom : @�disp@�.kahuna.glbdns.microsoft.com // problème d'affichage ? Adresse IP : 64.4.20.186 Nom : @�.kahuna.glbdns.microsoft.com // problème d'affichage ? Adresse IP : 64.4.20.174 Nb d'adresses IP = 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void afficher_ip(struct hostent *host_entry){ int i, k; for(i=0; host_entry->h_addr_list[i]; i++){ printf("\t Nom : %s\n", host_entry->h_addr_list[i]); printf("\t Adresse IP : %s\n", inet_ntoa(*(IN_ADDR *) host_entry->h_addr_list[i])); k = i+1; } printf("\tNb d'adresses IP = %d\n\n", k); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void affiche(char *name){ struct hostent *hostinfo = NULL; const char *hostname = name; hostinfo = gethostbyname(hostname); if (hostinfo == NULL){ /* l'hôte n'existe pas */ fprintf (stderr, "Unknown host %s.\n", hostname); exit(EXIT_FAILURE); } printf("\n%s :\n", hostname); afficher_ip(hostinfo); }Si vous avez une idée pour que l'affichage soit correct.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int main(int argc, char *argv){ affiche("www.hotmail.com"); return EXIT_SUCCESS; }
Merci.
Partager