Quand je fais getaddrinfo pour localhost, je ne reçois pas 127.0.0.1

Je suis toujours en apprentissage et les sockets ne sais pas pourquoi cela n'a pas l'impression 127.0.0.1. Même si je remplace le mot localhost par 127.0.0.1 j'ai d'autres adresses ip qui je pense sont de mon routeur ou quelque chose. J'ai toujours pensé que ce doit retourner 127.0.0.1. Voici la sortie-je recevoir:

hostname: 28.30.0.0
hostname: 28.30.0.0
hostname: 28.30.0.0
hostname: 28.30.0.0
hostname: 16.2.0.0
hostname: 16.2.0.0

Voici le code de base:

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>

int main()
{
    struct addrinfo* feed_server = NULL;

    getaddrinfo("localhost", NULL, NULL, &feed_server);
    struct addrinfo *res;
    for(res = feed_server; res != NULL; res = res->ai_next)
    {   
        printf("hostname: %s\n", inet_ntoa(*((struct in_addr*)(res->ai_addr))));
    } 

    return 0;
}
En plus de la réponse exacte, vous ne devriez pas oublier de freeaddrinfo(feed_server);

OriginalL'auteur | 2011-04-22