Recuperation IP client, Sockets
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:
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 :)