Niepoprawny adres IP zwrócony z domeny zarejestrowanej pod adresem No-IP

0

Chcę połączyć klienta z serwerem przez Internet (używając C ++ i winsock2), więc zarejestrowałem nazwę domeny dla serwera w trybie bez adresu IP, aby klient mógł ustalić, że jest to adres IP bez konieczności korzystania z tego samego adresu IP LAN. Ale gdy klient używa getaddrinfo () do ustalenia adresu IP serwera na podstawie nazwy domeny, getaddrinfo () zawsze zwraca 8.23.224.90 (który nie jest adresem IP serwera). Statystyki ping również pokazują, że adres IP nazwy domeny 8.23.224.90. Po długim przeglądaniu problemu w końcu znalazłem to na stronie internetowej bez adresu IP:

„Adresy IP 8.23.224.90 i 50.19.220.154 to bezpośrednie lokalizacje dla naszych serwerów przekierowań internetowych. Jeśli masz skonfigurowaną nazwę hosta jako przekierowanie sieciowe, przekierowanie portu 80 lub masz włączoną stronę offline, są to adresy IP, które zostaną przypisane do twojego hosta. ”

Obecnie w ten sposób klient uzyskuje adres IP z nazwy domeny „nazwa hosta”. Co powinienem dodać / zmienić, aby uzyskać prawdziwy adres IP? Z góry dziękuję...

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));
    }

}
Awais Chishti
źródło

Odpowiedzi:

1

Nie znam panelu konfiguracji No-Ip Plus, ale myślę, że jest blisko, to samo, co część bezpłatna.

Logiczne jest przekierowywanie na serwerze bez IP, jeśli Twój DNS jest skonfigurowany do korzystania z funkcji internetowej. Upewnij się, że opcja taka jak „Port 80 Redirect” lub „Web Redirect” nie jest zaznaczona.

Zamiast tego potrzebujesz „DNS Host (A)” (Przekieruj swój DNS na IPv4).

Twoja zmiana może potrwać kilka minut (domyślna wartość TTL wynosi 1 minutę, więc spodziewaj się co najmniej jednej minuty przed ponowną próbą)

0xCDCDCDCD
źródło