Windows не разрешает локальное имя хоста в IP-адрес файла хоста

У меня многосетовая Windows 10, и я хочу, чтобы мое приложение открывало серверный сокет на определенном IP-адресе по его имени хоста .

Имя хоста моей машины MY-PC , у него публичный IP 192.0.0.2/24 и «прямой» IP 192.2.2.2/24 (напрямую подключен к другому компьютеру). Оба параметра настраиваются на странице сетевого адаптера Windows в Панели управления.

DNS не настроен. Файл «Мои хосты» выглядит так:

127.0.0.1    localhost
192.2.2.2    MY-PC
192.2.2.1    DIRECT-PC

Когда Я пытаюсь пропинговать свое имя хоста ( после полного отключения IPv6 ):

> ping MY-PC

Pinging MY-PC [192.0.0.2] with 32 bytes of data:
Reply from 192.0.0.2: time<1ms
...

Странно то, что та же самая настройка (файл хоста / конфигурация сетевого адаптера) работает должным образом на другом компьютере (но только на одном из шесть).

Как я могу принудительно прослушивать определенный IP-адрес с имени хоста? (который является глобальным параметром из конфигурации, полученной программой).

Я уже проверял связанный вопрос , но ответ заключается в полном отключении IPv6.

1
задан 25 February 2020 в 15:50
1 ответ

Прочтите эту статью , там вы можете узнать больше о разрешении имен в Windows. Ниже ответ на ваш вопрос:

Разрешение имени хоста обычно использует следующую последовательность:

  1. Клиент проверяет, является ли запрошенное имя своим собственным.
  2. Затем клиент выполняет поиск в локальном файле Hosts, списке IP-адресов адрес и имена хранятся на локальном компьютере.
  3. Запрашиваются серверы системы доменных имен (DNS).
  4. Если имя все еще не разрешено, в качестве резервной копии используется последовательность разрешения имен NetBIOS. Этот порядок можно изменить, настроив тип узла NetBIOS клиента.

Клиент Windows будет пробовать каждый из этих методов, пока он либо успешно не разрешит имя, либо не исчерпает эти методы.

1
ответ дан 25 February 2020 в 23:33

Теги

Похожие вопросы