anhand von einer angenommenen verbindung ip herausfinden
-
wie finde ich die ip eines pc's raus, der sich aufm meinem server erfolgreich eingeloggt hat?
ich verwende die ganz normalen windows sockets (version 2.0)
funktioniert auch alles, also kommunikation per select, recv und send, aber ich möchte auch info's über meinen gegenüber herausfinden.konnte auf www.c-worker.ch nichts passendes in der richtung herausfinden.
ich weis eben net wie ich vom socket zu so ner hostent struktur kommen soll.noch ne frage:
kann man irgendwie die sockets abrufen, wie viele bytes mir zugesendet wurden, dann kann ich die verwaltung dynamisch machen.
und wenn ich die recv 2 mal hintereinander aufrufe, jedes mal nur die hälfte der bytes hole, geht das dann oder verwirft der nach einem mal den puffer?sry wegen den paar fragen in einem post, ich wollte net spamen.
MfG Mailmaster
-
1.) getpeername
2.) recv in einer Schleife aufrufen
-
Cool, danke funktioniert alles wunderbar.
1A Forum hier...muss ich echt mal fettes Lob aussprechen, auch gute und kompetente leute

MfG Mailmaster
-
sorry

hab doch noch ein problem
die struktur wird gefüllt...aber in dem char array (sa_data) steht die addresse leider nicht im klartext da. wie muss ich die umwandeln, das ich ne normal ip adresse bekomme?MfG Mailmaster
-
Vielleicht hilft dir dass:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/inet_ntoa_2.asp
MSDN schrieb:
The inet_ntoa function converts an (Ipv4) Internet network address into a string in Internet standard dotted format.
-
ohman da fehlt einfach der edit button
hab was gefunden das das ganze umwandelt, aber es kommt ein linker fehler:
[Linker Fehler] Unresolved external 'WSAAddressToStringA' referenced from C:\PROGRAMMIERUNG\C++\WSSM\UNIT1.OBJan was liegt das?
hab borland 5 und die header files
#include <vcl.h>
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>MfG Mailmaster
-
nimm getnameinfo !!
-
mach noch
#pragma comment(lib, "ws2_32.lib")
-
Herr-Vorrangend, danke funktioniert, allerdings gibt die funktion nur \0 zurück

und zu getnameinfo:
[C++ Fehler] Unit1.cpp(145): E2268 Aufruf der undefinierten Funktion 'getnameinfo'MfG Mailmaster
-
s = accept(sock,(LPSOCKADDR)&ca,&lca);
lstrcpy(szIP, inet_ntoa(ca.sin_addr));
-
ich glaub das hört heut nemme mit den fehlen auf

[C++ Fehler] Unit1.cpp(140): E2316 'sin_addr' ist kein Element von 'sockaddr'
tja das ist ein problem

ich verzweifel bald
MfG Mailmaster
-
struct sockaddr_in sa;
SOCKADDR_IN ca;
int lca=sizeof(SOCKADDR);
-
danke es geht endlich

da soll mal einer als nicht C++ profi drufkommen

MfG Mailmaster
-
Mailmaster schrieb:
da soll mal einer als nicht C++ profi drufkommen

mal ganz davon abgesehen das es kein c++ ist was du da machst
