在 No-IP 注册的域名返回了错误的 IP 地址

在 No-IP 注册的域名返回了错误的 IP 地址

我想通过互联网连接一个客户端和一个服务器(使用 C++ 和 winsock2),所以我在 No-IP 上为服务器注册了一个域名,这样客户端就可以确定它的 IP 地址,而不必与服务器在同一个 LAN 上。但是当客户端使用 getaddrinfo() 根据域名确定服务器 IP 地址时,getaddrinfo() 总是返回 8.23.224.90(这不是服务器的 IP 地址)。Ping 统计信息也显示域名的 IP 地址为 8.23.224.90。我在 google 上搜索了很长时间后,最终在 No-IP 网站上找到了这个:

“IP 地址 8.23.224.90 和 50.19.220.154 是我们 Web 重定向服务器的直接位置。如果您将主机名设置为 Web 重定向、端口 80 重定向或启用了离线页面,则这些 IP 将分配给您的主机。”

目前,这是客户端从域名“hostname”获取 IP 地址的方式。我应该添加/更改什么才能获取真实 IP 地址?提前致谢...

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

}

答案1

我不知道 No-Ip Plus 配置面板,但我猜这与免费部分非常相似。

如果您的 DNS 配置为使用 Web 功能,则在 No-Ip 服务器上重定向是合乎逻辑的。确保未选中“端口 80 重定向”或“Web 重定向”等选项。

您需要的是“DNS 主机 (A)”(将您的 DNS 重定向到 IPv4)。

您的更改可能需要几分钟才能生效(默认 TTL 为 1 分钟,因此请等待至少一分钟再试)

相关内容