Bonjour,

Je suis actuellement en train de bosser sur un mini serveur en c++.
Tout ce qui est reseau passe donc par les sockets.
Histoire d'améliorer un petit peu j'aimerais que, quand l'utilisateur se connecte, le serveur recupere l'adresse IP du client.
Pour windows j'ai ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 t_socketlist		*list;
#ifdef WIN32
  int			sin_size;
#else
  socklen_t		sin_size;
#endif
  //int			i;
  SOCKADDR_IN   addr;
 
  sin_size = sizeof(addr);
getpeername(fd, (SOCKADDR *)&addr, &sin_size);
std::cout << "Client " << inet_ntoa(addr.sin_addr) << std::endl;
Le probleme est qu'aparement sous UNIX, getpeername ne prends pas une struct sockaddr_in en parametre, mais une struct sockaddr, qui ne permet pas d'utiliter inet_ntoa ou toute autre fonction (dumoins dans la limite de mes connaissanes ^^) qui renverrait l'adresse IP.
Ma question serait donc : si quelqu'un sait comment faire pour recuperer l'adresse IP sous UNIX, je suis assez preneur...
Merci d'avance