簡體   English   中英

getaddrinfo():使用No-IP注冊的域的IP地址

[英]getaddrinfo(): IP address of domain registered with No-IP

我想通過Internet連接客戶端和服務器(使用C ++和winsock2),所以我在No-IP上為服務器注冊了一個域名,這樣客戶端就可以確定其IP地址,而不必兩者都在同一個位置局域網。 但是,當客戶端使用getaddrinfo()從域名中確定服務器IP地址時,getaddrinfo()始終返回8.23.224.90(這不是服務器的IP地址)。 Ping統計信息還顯示該域名的IP地址8.23.224.90。 在搜索了很長時間后,我終於在No-IP網站上找到了這個問題:

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

}

不要將主機名設置為網絡重定向,而應將其設置為DNS A記錄。 其網站上有更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM