Bogus IP-Adresse von getaddrinfo & inet_ntop
-
21-09-2019 - |
Frage
Ich habe zum Nachschlagen Socketadressen für den Grund Buchse Befehle Getaddrinfo. Vor kurzem, obwohl die Adressen es mir zurückgibt sind für gefälschte IP-Adressen, die ich mit inet_ntop gefunden haben. Ich habe meinen Code versucht, sowie dass in Beej des Führer , und sie beide die gleichen Ergebnisse. Hier ist der Code:
struct addrinfo hints, *info;
int status;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
if(status = getaddrinfo(address, port, &hints, &info)) {
fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(status));
}
char ip4[INET_ADDRSTRLEN];
inet_ntop(AF_INET, info->ai_addr, ip4, INET_ADDRSTRLEN);
std::cout<<ip4<<std::endl;
Egal welche Adresse ich, es gibt mir immer eine IP von der Form
16.2.x.y
wobei 256 * x + y auf die Portnummer gleich ist. Hat jemand schon einmal das geschehen gesehen, oder kann jemand erraten, warum es gibt mir das?
Lösung
Sie sollten nicht vorbei sein
((sockaddr_in const *)info->ai_addr)->sin_addr
zu inet_ntop
?
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow