Résolution d'adresse de machine (en fonction du descripteur) :
int socketVersNom(int ds,char *nom)
{
struct sockaddr_in adresse;
int taille=sizeof(adresse);
int statut;
struct hostent *machine;
/* Recupere l'adresse de la socket distante */
statut=getpeername(ds,(struct sockaddr *)&adresse,&taille);
if(statut<0){
perror("socketVersNom.getpeername");
exit(-1);
}
/* Recupere le nom de la machine */
machine=gethostbyaddr((const char *)&(adresse.sin_addr),
sizeof(adresse.sin_addr),AF_INET);
if(machine==NULL){
strcpy(nom,inet_ntoa(adresse.sin_addr));
return -1;
}
else{
strcpy(nom,machine->h_name);
return 0;
}
}