getaddrinfo():未注册IP的域的IP地址 我想通过C++和WiSoCK2将客户端和服务器连接到Internet上,因此我在没有IP的情况下注册了一个域名,这样客户端就可以确定它的IP地址,而不必同时在同一个LAN上。但是,当客户端使用getaddrinfo从域名确定服务器IP地址时,getaddrinfo总是返回8.23.224.90,这不是服务器的IP地址。Ping统计数据还显示,该域名的IP地址为8.23.224.90。我在谷歌上搜索了很长一段时间后,终于在没有IP的网站上找到了这个问题:
IP地址8.23.224.90和50.19.220.154是我们的web重定向服务器的直接位置。如果将主机名设置为web重定向、端口80重定向或启用了脱机页面,则这些是将分配给主机的IP 目前,这是客户端从域名主机名获取IP地址的方式。我应该添加/更改什么才能获得真正的IP地址?先谢谢你getaddrinfo():未注册IP的域的IP地址 我想通过C++和WiSoCK2将客户端和服务器连接到Internet上,因此我在没有IP的情况下注册了一个域名,这样客户端就可以确定它的IP地址,而不必同时在同一个LAN上。但是,当客户端使用getaddrinfo从域名确定服务器IP地址时,getaddrinfo总是返回8.23.224.90,这不是服务器的IP地址。Ping统计数据还显示,该域名的IP地址为8.23.224.90。我在谷歌上搜索了很长一段时间后,终于在没有IP的网站上找到了这个问题:,c++,networking,dns,winsock2,domain-name,C++,Networking,Dns,Winsock2,Domain Name,IP地址8.23.224.90和50.19.220.154是我们的web重定向服务器的直接位置。如果将主机名设置为web重定向、端口80重定向或启用了脱机页面,则这些是将分配给主机的IP 目前,这是客户端从域名主机名获取IP地址的方式。我应该添加/更改什么才能获得真正的IP地址?先谢谢你 int hostname_to_ip(char *hostname, char *ip) { struct addrinfo hints, *servinfo, *p; struct sock
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));
}
}
不要将主机名设置为web重定向,而是将其设置为DNS记录。更多详细信息