connaitre l'IP de connexion [Résolu][Socket] - C - Programmation
Marsh Posté le 19-03-2010 à 21:24:32
Salut
Je ne suis pas sûr d'avoir compris mais je tente:
Citation : int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); |
Marsh Posté le 19-03-2010 à 22:37:57
Bien essaye ^^ mais c'est pas ca.
accept() remplit bien ma structure avec l'adresse de mon client.
Exemple:
-serveur en écoute sur 127.0.0.1; 192.168.0.1; 10.0.0.6
-client dont l'IP est 10.0.0.9.
Si j'accepte la connexion il va me remplir la structure avec l'IP de mon client donc => 10.0.0.9;
En revanche je veux savoir si il passe par 127.0.0.1, 192.168.0.1 ou 10.0.0.6 dans mon serveur
Marsh Posté le 20-03-2010 à 12:09:32
Ok, je n'avais pas compris...
Ce que tu veux savoir c'est l'interface réseau utilisée?
Je ne sais pas si ce code est bon, je ne suis pas expert en réseau mais je suis tombé la dessus:
http://www.developpez.net/forums/d [...] ce-reseau/
En tout cas cela donne au moins une piste.
Avec ça, tu dois pouvoir faire une association socket/interface et donc obtenir ce que tu souhaites.
Marsh Posté le 01-04-2010 à 23:18:11
darkiller666 a écrit : ok merci je test et je te previens |
Code :
|
gethostent() m'a liste toutes les interfaces presentes et inet_ntoa(...) m'a donne l'IP de l'interface correspondante.
D'un cote quand on y pense, gethostent ne fait (que) lire le fichier /etc/hosts, d'ou son nom .
En tout cas merci pour tout.
Marsh Posté le 19-03-2010 à 16:26:20
Bonjour a tous,
je suis en train de faire un serveur ftp mais j'ai un probleme avec le mode "passif".
Comme vous pouvez le voir, j'écoute toutes les connexion avec "INADDR_ANY", mais je n'arrive pas a savoir sur quelle connexion se connecte mon client (je ne sais pas si je m'exprime assez bien). Y a-t-il une fonction pour connaitre la connexion utilisée par mon client une fois que accept() m'a retourne mon file descriptor?
Message édité par darkiller666 le 01-04-2010 à 23:18:45