sockaddr_in in int oder string
-
Moin,
gib da vielleicht ne Funktion die mir die IP adresse in einen string umwandelt..
ich brauch eigentlich nur das letzte byte der adresse
ich möchte es als identifizierung meiner clienten verwenden.danke
-
Die sockaddr_in Struktur hat den Member sin_addr, in dem die IP-Adresse steht (als union, so daß du sie entweder als 4 char, 2 short oder einen long auslesen kannst):
sockaddr_in addr; unsigned char ip_last = addr.sin_addr.S_un_b.s_b4;
-
also
unsigned char ip_last = sinRemote.sin_addr.S_un.S_un_b.s_b1; cout<< ip_last<< endl;funktioniert nicht (er zeigt nichts an)
aber
unsigned int ip_last = sinRemote.sin_addr.S_un.S_un_b.s_b1; cout<< ip_last<< endl;funktioniert!
-
Ändere mal die Ausgabe im ersten Fall in
cout<<(int)ip_last<<endl;um - char-Variablen werden von cout als ASCII-Zeichen aufgefasst, wenn du den Zahlenwert dahinter verwenden willst, mußt du ihn nach int casten.
-
individuum schrieb:
Moin,
gib da vielleicht ne Funktion die mir die IP adresse in einen string umwandelt..
ich brauch eigentlich nur das letzte byte der adresse
ich möchte es als identifizierung meiner clienten verwenden.danke
Die Funktion heißt inet_ntop.
Tntnet