[C] Resolution de domaine et connection
Résolu
Piranha8620
-
Piranha8620 -
Piranha8620 -
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
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
-
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. -
> gethostbyname( const char* )->
Beurk !!
Il faut éviter le copier-coller sans ne rien comprendre et apprendre le C... -
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. -
Ben non, j'ai compris et ça marche très bien ainsi.
On remplace "const char*" par une chaine de caractére...
Merci