[C] Resolution de domaine et connection

Résolu/Fermé
Piranha8620 - 5 août 2009 à 20:48
 Piranha8620 - 6 août 2009 à 16:28
Bonjour,

Bonjour,


J'ai réaliser un code (en cherchant pas mal sur internet) qui permet de trouver l'adresse ip d'un nom de domaine mais je n'arrive pas a me servir du retour de gethostbyname.

Code :
/* Resolution DNS */
struct hostent *info = gethostbyname (HOSTNAME);
struct hostent host = *info;
char *ip;

ip = host.h_addr_list[0];

for (int i = 0; i < host.h_length; i++){
if (i > 0)
printf(".");
printf ("%u", (unsigned) (unsigned char) ip[i]);
}

Code :
/* Configuration de la connexion */
sin.sin_addr.s_addr = inet_addr(HOSTNAME);
sin.sin_family = AF_INET;
sin.sin_port = htons(PORT);Ce ne doit pas être très compliqué mais je n'arrive pas à faire la transition entre les deux. Entre l'ip stocké dans h_addr_list et la mettre dans inet_addr.

Merci

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
6 août 2009 à 12:34
Salut.
Voici un extrait d'un de mes codes. En espérant que ça te serve :
sockaddr_in sad;
sad.sin_addr.s_addr=*(unsigned int*)gethostbyname(  const char*  )->h_addr;

Ce code fonctionne très bien, je lui donne des noms d'ordinateurs, et il s'y connecte sans souci.
0
> gethostbyname( const char* )->

Beurk !!
Il faut éviter le copier-coller sans ne rien comprendre et apprendre le C...
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
6 août 2009 à 16:27
T'es con ou quoi ? puisque je dis que c'est un code qui fonctionne !
Si j'ai mis const char* c'est pour indiquer le type de valeur à mettre à cet endroit car je ne sais pas ce que piranha veux mettre.
0
Ben non, j'ai compris et ça marche très bien ainsi.

On remplace "const char*" par une chaine de caractére...


Merci
0