Неправильный IP-адрес возвращен из домена, зарегистрированного на No-IP

1694
Awais Chishti

Я хочу соединить клиента и сервер через Интернет (используя C ++ и winsock2), поэтому я зарегистрировал доменное имя для сервера на No-IP, чтобы клиент мог определить его IP-адрес без необходимости быть на одном и том же LAN. Но когда клиент использует 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 являются прямыми расположениями для наших серверов веб-перенаправления. Если у вас настроено имя хоста в качестве веб-перенаправления, перенаправление порта 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)); }  } 
0

1 ответ на вопрос

1
0xCDCDCDCD

Я не знаю о панели конфигурации No-Ip Plus, но я думаю, что это близко к той же бесплатной части.

Логично перенаправить на сервер No-Ip, если ваш DNS настроен на использование веб-функции. Убедитесь, что опция, такая как «Перенаправление порта 80» или «Веб-перенаправление» не отмечена.

Вместо этого вам нужно «DNS Host (A)» (перенаправить DNS на IPv4).

Чтобы изменения вступили в силу, может потребоваться несколько минут (по умолчанию TTL составляет 1 минуту, поэтому подождите не менее одной минуты, прежде чем пытаться снова)