Wie bekomm ich die IP des clients herraus, der gerade connected?
-
sockaddr_in sai; int sockaddr_len=sizeof(sockaddr_in); SOCKET newSocket=accept(listenSocket,(sockaddr*)&sai,&sockaddr_len); if (newSocket==INVALID_SOCKET) { // Was schief gelaufen } else { // Die IP nach "ip" kopieren: char ip[100]; strcpy( ip, inet_ntoa(sai.sin_addr) ); }@gosha16: Ich scheine ein Brett vor dem Kopf zu haben?!
-
ich hab T0bi gemeint

-
Gosha16, wo ist dein Problem? Wieso sollte ich dein Post nicht gelesen haben? Darf ich hier nicht frei für mich entscheiden wie ich mein Problem löse? Was spricht gegen diese Variante?
-
T0bi, kann es sein, das du in einem früheren Leben "Spieleprogrammierer" geheißen hast?
greetz, Swordfish
-
T0bi ist doch viel dümmerer als wie der war.
-
Aber mit dem wars irgendwie spaßiger...
greetz, Swordfish
-
Jojo und ihr mich auch ...
-
geh doch ins hackerboard aber lass uns mit deinen kindereien in ruhe
-
Hi,
Falls ich dir noch helfen kann hier der Psydo-code:sockaddr_in sa; int namelen = sizeof(sa); getpeername(DEINCLIENTSOCKET,(SOCKADDR*)&sa,&namelen); int size = strlen(inet_ntoa(sa.sin_addr)); char* ip = new char[size+1]; strcpy(ip,inet_ntoa(sa.sin_addr)); delete [] ip;MFG ReduX
-
@"weg mit dir!" Ich find euch 11Jährigen Kinder immer nur zu lustig, wenn ihr mal ausfallend werden wollt logt ihr euch aus und postet hier mit son Crap-Namen ein Haufen Müll.
Irgendwie find ich das sowieso immer schlimmer hier, dass die die programmieren können auf denen rumhacken dies lernen wollen, klar stellt man sich da als Anfänger dumm an, das doch noch lange kein Grund so ausfallend zu werden?
Ich habe die Methode genommen, weil ich sonst nicht an die IP heran gekommen wäre:
// ***** Detour WSAAccept ***** SOCKET WINAPI DetourWSAAccept( SOCKET s, struct sockaddr *addr, LPINT addrlen, LPCONDITIONPROC lpfnCondition, DWORD dwCallbackData ) { SOCKET sPeer = fpOrigWSAAccept( s, addr, addrlen, lpfnCondition, dwCallbackData ); SOCKADDR_IN sai; int sai_len = sizeof( SOCKADDR_IN ); memset( &sai, 0, sizeof( SOCKADDR_IN ) ); getpeername( sPeer, (SOCKADDR*)&sai, &sai_len ); char szID[ 16 ]; szID[ 0 ] = 0; strcpy( szID, inet_ntoa( sai.sin_addr ) ); time_t TimeStamp = 0; tm *now = 0; TimeStamp = time( 0 ); now = localtime( &TimeStamp ); char szBuffer[ 128 ]; szBuffer[ 0 ] = 0; sprintf( szBuffer, "[ %2d/%2d/%d - %2d:%2d:%2d ] - %s", now->tm_mday, now->tm_mon + 1, now->tm_year + 1900, now->tm_hour, now->tm_min, now->tm_sec, szID ); std::ofstream file; file.open( "Connections.txt", std::ios::out | std::ios::app ); file << szBuffer << std::endl; file.close( ); return sPeer; }Oder hätte ich das, doch anders lösen können?
PS: @ReduX, Danke!
Gruß Tobi.