J'ai utilisé getaddrinfo pour rechercher des adresses de socket pour les commandes de socket de base. Récemment, cependant, les adresses qu'il me renvoie sont pour les adresses IP fausses, que j'ai trouvé en utilisant inet_ntop. J'ai essayé mon code, ainsi que celui fourni dans Beej's Guide, et ils produisent tous deux les mêmes résultats. Voici le code:Bogus adresse IP de getaddrinfo & inet_ntop
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;
Peu importe quelle adresse je l'utilise, il me donne toujours une adresse IP de la forme
16.2.x.y
où 256 * x + y est égal au numéro de port. Est-ce que quelqu'un a déjà vu cela se produire, ou quelqu'un peut-il deviner pourquoi il me donne ça?
Oui, cela pourrait aider un peu. : P Merci! Et c'est en fait & ((const sockaddr_in *) info-> ai_addr) -> sin_addr – Xymostech