Windows

Windows 未將本地主機名解析為主機文件 IP

  • February 25, 2020

我有一個多宿主 Windows 10,我希望我的應用程序在其主機名給出的特定 IP 上打開一個伺服器套接字。

我的機器主機名是MY-PC,它有一個公共 IP192.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

當我嘗試 ping 我的主機名時(完全禁用 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。

請閱讀這篇文章,在那裡您可以找到更多關於 Windows 名稱解析的資訊。下面回答你的問題:

主機名解析一般採用以下順序:

  1. 客戶端檢查查詢的名稱是否是它自己的。
  2. 然後,客戶端搜尋本地主機文件、儲存在本地電腦上的 IP 地址和名稱列表。
  3. 查詢域名系統 (DNS) 伺服器。
  4. 如果名稱仍未解析,則使用 NetBIOS 名稱解析序列作為備份。可以通過配置客戶端的 NetBIOS 節點類型來更改此順序。

Windows 客戶端將嘗試這些方法中的每一個,直到它成功解析名稱或用盡這些方法。

引用自:https://serverfault.com/questions/1004503