Probleme mit gethostbyname bzw. mit h_addr_list
-
Hallo,
ich habe ein Problem mit dem struct hostent bzw. mit der h_addr_list. Ich habe die hostent* informationen mit gethostbyname erhalten. Danach schreibe ich die IP infos von h_addr_list in einen UCHAR - Array.
Bsp.:UCHAR ipaddr[4]; hostent* host; char hostName[MAX_PATH]; gethostname(hostname, MAX_PATH); host = gethostbyname(hostName); ipaddr[0] = host->h_addr_list[0][0]; ipaddr[1] = host->h_addr_list[0][1]; ipaddr[2] = host->h_addr_list[0][2]; ipaddr[3] = host->h_addr_list[0][3];
danach lasse ich die ipaddr in einen String schreiben:
sprintf(ipstring, "%d.%d.%d.%d", ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]);
Wenn ich diesen String allerdings ausgeben lasse (z.B. mit MessageBox(...)) sind die ersten zwei ipaddr - Elemente Negativwerte (-64.-88...) obwohl meine IP mit 192.168... beginnt.
Wie kann ich diesen Fehler beheben?
-
numm mal %u anstatt %d.
%d ist ein wert mit vorzeichen und %u ohne. der wird das einfach falsch interpretieren
-
Danke für deine Hilfe