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?

War es hilfreich?

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
scroll top