1

Я пытаюсь программно получить IP-адрес удаленного ПК в моей сети по имени хоста ПК. ПК работает как сервер Apache. Насколько я понимаю, в DNS-запросе, используемом для получения IP-адреса по имени хоста, к имени хоста необходимо добавить суффикс DNS. Могу ли я запросить DNS-сервер, чтобы получить суффикс DNS, используемый для этого ПК?

1 ответ1

1

Обычно DHCP и DNS-хост вашего хоста позаботятся об этом:

  1. DHCP возвращает имя домена (что нужно добавить к простому (не пунктирному) имени хоста, чтобы сделать его полностью определенным доменным именем (FQDN))
  2. DHCP-клиент вашей системы будет хранить это где-нибудь (на машинах Unix/Linux в /etc/resolv.conf вместе с адресами DNS-серверов, также полученными в предложении DHCP)
  3. Когда вы запрашиваете у своей операционной системы (например, POSIX gethostbyname ()) IP-адрес хоста, он превращает имя хоста в полное доменное имя (если оно уже выглядит как полное доменное имя, т. Е. Содержит точки, то ничего не будет делать, иначе добавить доменное имя)

Таким образом, если вы используете только "официальные" функции вашей ОС, вам не нужно знать полное имя. Если вы отправляете DNS-пакеты вручную, вам потребуется получить эту информацию из файлов конфигурации (или, в Windows, из реестра).

Если это внутренняя сеть (например, частная сеть за блоком NAT), возвращенный адрес "FQDN" не будет действительным за пределами этой сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .