Bonjour,
je m'adresse à vous car j'ai l'impression que mon code pour récupérer l'IP d'une socket TCP cliente qui vient de se connecter à mon serveur est bancal:
Je me retrouve avec des résultats pour le moins bizarre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 char* ipStr = malloc(16 * sizeof(char)); struct sockaddr_in address; socklen_t address_len; int result = getpeername(fd, &address,&address_len); if (result == 0) { strcpy(ipStr,inet_ntoa(address.sin_addr)); } else { strcpy(ipStr, "***.***.***.***"); } // do something with my char* free(ipStr);
- de temps en temps j'ai des IPs en 255.x.y.z
- de temps en temps, j'ai des ***.***.***.***
- de temps en temps, j'ai des 0.0.0.0
Quelqu'un aurait-il une idée ou même une simple piste ?
Merci d'avance
EDIT: a noter que je travaille sur SunOS:
>uname -a
SunOS sun1 5.9 Generic_117171-02 sun4u sparc SUNW,Sun-Fire-480R
Partager