Endereço IP incorreto retornado do domínio registrado no No-IP

0

Eu quero conectar um cliente e um servidor através da Internet (usando C ++ e winsock2), então eu registrei um nome de domínio para o servidor no No-IP, para que o cliente pudesse determinar seu endereço IP sem que ambos tivessem que ser na mesma LAN. Mas quando o cliente usa getaddrinfo () para determinar o endereço IP do servidor a partir do nome de domínio, getaddrinfo () sempre retorna 8.23.224.90 (que não é o endereço IP do servidor). As estatísticas de ping também mostram que o endereço IP do nome de domínio é 8.23.224.90. Depois que eu pesquisei o problema por um longo tempo, acabei descobrindo isso no site do No-IP:

"Os endereços IP 8.23.224.90 e 50.19.220.154 são os locais diretos para nossos servidores de redirecionamento da Web. Se você tiver uma configuração de nome de host como redirecionamento da Web, redirecionamento da porta 80 ou tiver uma página off-line habilitada, esses são os IPs será atribuído ao seu host. "

Atualmente, é assim que o cliente obtém o endereço IP do nome de domínio "hostname". O que devo adicionar / alterar para obter o endereço IP real? Agradecemos antecipadamente ...

int hostname_to_ip(char *hostname, char *ip) {

    struct addrinfo hints, *servinfo, *p;
    struct sockaddr_in *h;

    memset(&hints,0,sizeof(hints));
    hints.ai_family=AF_INET;
    hints.ai_socktype=SOCK_STREAM;

    getaddrinfo(hostname,NULL,&hints,&servinfo);
    for (p=servinfo; p!=NULL; p=p->ai_next) {
        h=(struct sockaddr_in*)p->ai_addr;
        strcpy(ip,inet_ntoa(h->sin_addr));
    }

}
    
por Awais Chishti 06.11.2014 / 11:49

1 resposta

1

Não conheço o painel de configuração do No-Ip Plus, mas acho que está próximo de ser o mesmo que a parte livre.

É lógico redirecionar no servidor No-Ip se o seu DNS estiver configurado para usar um recurso da web. Certifique-se de que opções como "Port 80 Redirect" ou "Web Redirect" não estejam marcadas.

O que você deseja é "Host DNS (A)" (redirecione seu DNS para um IPv4).

Sua alteração pode levar alguns minutos para ser eficaz (o TTL padrão é de 1 minuto, portanto espere pelo menos um minuto antes de tentar novamente)

    
por 06.11.2014 / 16:30