Serveur Telnet C++ Aide sur IP

cs_hergo Messages postés 5 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 12 avril 2006 - 14 juin 2004 à 00:54
cs_hergo Messages postés 5 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 12 avril 2006 - 16 juin 2004 à 22:36
Bonjour je suis debutant et j'aimerai savoir comment recuperer l'ip dun client qui se connect a un serveur telnet:

jai recuperer ce serveur telnet si joint :

#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib")

int main(void)
{
SOCKET s;
SOCKET c;
sockaddr_in sin;
WSAEVENT EventClose = WSACreateEvent(); // on crée un EVENT

WSADATA wsa;
WSAStartup(MAKEWORD(2,0), &wsa);

s = socket(AF_INET, SOCK_STREAM, 0);

sin.sin_family = AF_INET;
sin.sin_port = htons(2000);
sin.sin_addr.S_un.S_addr = INADDR_ANY;

bind(s,(sockaddr *) &sin, sizeof(sin));
listen(s, 5);

int SinSize = sizeof(sin);

c = accept(s, (sockaddr *) &sin, &SinSize);
WSAEventSelect(c, EventClose, FD_CLOSE); // on lie l'EVENT au socket c
printf("connection accepte\n");

WSAWaitForMultipleEvents(1, &EventClose, FALSE, WSA_INFINITE, FALSE); // on attend l'EVENT.
printf("connection perdue\n");
return 0;
}

Merci ...

2 réponses

bat67000 Messages postés 6 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 30 juin 2004
16 juin 2004 à 21:08
Oui,
Tu utilise pour ca getpeername(...)
Voila ton pseudo code :

c = accept(s, (sockaddr *) &sin, &SinSize);

int client_local;
struct sockaddr_in cliAddr;
int addr_len;
addr_len = sizeof(cliAddr);

getpeername(s, (struct sockaddr*)&cliAddr, &addr_len);

Hope it was helpful!...
a+
bat
0
cs_hergo Messages postés 5 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 12 avril 2006
16 juin 2004 à 22:36
merci je vais essayer tout cas !!!!!!
0
Rejoignez-nous