Falsche IP-Adresse von einer unter No-IP registrierten Domäne zurückgegeben

1664
Awais Chishti

Ich möchte einen Client und einen Server über das Internet verbinden (mithilfe von C ++ und Winsock2). Daher habe ich einen Domainnamen für den Server unter No-IP registriert, damit der Client seine IP-Adresse ermitteln kann, ohne dass beide auf demselben Server liegen müssen LAN. Wenn der Client jedoch mithilfe von getaddrinfo () die IP-Adresse des Servers anhand des Domänennamens ermittelt, gibt getaddrinfo () immer 8.23.224.90 zurück (nicht die IP-Adresse des Servers). Ping-Statistiken zeigen auch, dass die IP-Adresse des Domänennamens 8.23.224.90 lautet. Nachdem ich das Problem lange Zeit gegoogelt hatte, fand ich dies auf der No-IP-Website:

"Die IP-Adressen 8.23.224.90 und 50.19.220.154 sind die direkten Speicherorte für unsere Web-Redirect-Server. Wenn Sie einen Hostnamen als Web-Redirect eingerichtet haben, Port 80 umleiten oder eine Offline-Seite aktivieren, werden diese IP-Adressen zugewiesen zu Ihrem Gastgeber. "

Derzeit erhält der Client die IP-Adresse vom Domänennamen "Hostname". Was muss ich hinzufügen / ändern, um die tatsächliche IP-Adresse zu erhalten? Danke im Voraus...

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

1 Antwort auf die Frage

1
0xCDCDCDCD

Ich kenne das No-Ip Plus-Konfigurationsfeld nicht, aber ich denke, dies ist in der Nähe des freien Teils.

Es ist logisch, auf einen No-Ip-Server umzuleiten, wenn Ihr DNS für die Verwendung einer Webfunktion konfiguriert ist. Stellen Sie sicher, dass die Option "Port 80 Redirect" oder "Web Redirect" nicht aktiviert ist.

Sie möchten stattdessen "DNS-Host (A)" (umleiten Sie Ihr DNS auf ein IPv4).

Es kann einige Minuten dauern, bis die Änderung wirksam ist (die Standard-TTL ist 1 Minute, daher sollten Sie mindestens eine Minute warten, bevor Sie es erneut versuchen.)