C socket obtenir l'adresse IP à partir de filedescriptor retourné à partir de l'accepter

Je sais que cette question semble typique et plusieurs fois répondu, mais je pense que si vous lisez les détails, il n'est pas si courant (je n'ai pas trouver).

Le point est que je suis en train d'élaborer un service unix en c qui ouvre un socket et attend les connexions, quand j'ai une connexion que je de créer un nouveau processus pour traiter, de sorte qu'il peut être de multiples connexions ouvertes en même temps.

int newfd = accept(sockfd, (struct sockaddr *)&clientaddr, (socklen_t*)&clientaddr_size);

Plus tard (après et à l'intérieur de certaines autres méthodes et code) le processus de l'enfant enregistrer les informations de connexion à la BBDD et j'ai besoin aussi, en ce moment précis,, à obtenir l'adresse IP que ouvert que la connexion à traiter.

Comme il peut y avoir de plusieurs connexions en même temps et la variable struct sockaddr_in clientaddr que je passe à l'accepter méthode est partagé par tous les processus je ne suis pas sûr que, plus tard, est une bonne idée d'obtenir l'adresse IP de l'information de cette façon parce qu'alors j'ai pu obtenir l'adresse IP à partir d'une autre connexion ouverte.

Je voudrais être en mesure de accéder à l'adresse IP à partir du descripteur de fichier int newfd que je reçois de l'accepter méthode (le retour de l'entier). Est-il possible? Ou j'ai mal compris le descripteur de fichier de la fonction?

double possible de Comment obtenir l'adresse ip de l'acceptés en-lié socket?
Merci @alk je vois, c'est de manière similaire, bien que (pour sûr, parce que de mon anglais), je n'ai pas besoin de le lier l'adresse, j'ai besoin de l'adresse du client. Maintenant, j'ai vu la façon dont est similaire, mais avec le getpeername() méthode 🙂
Ahok, je vois. Donc, que vous aimeriez ajouter une réponse à votre propre question, et même de l'accepter.
double possible de Obtenir une adresse distante/IP - C les Sockets Berkeley
Ok. Celui-ci oui @JosephQuinsey, de l'égalité et de et plus simple.. Désolé je n'ai pas trouvé avant...

OriginalL'auteur Aleix | 2013-12-09