Windows
Windows 未將本地主機名解析為主機文件 IP
我有一個多宿主 Windows 10,我希望我的應用程序在其主機名給出的特定 IP 上打開一個伺服器套接字。
我的機器主機名是
MY-PC
,它有一個公共 IP192.0.0.2/24
和一個“直接”IP192.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 名稱解析的資訊。下面回答你的問題:
主機名解析一般採用以下順序:
- 客戶端檢查查詢的名稱是否是它自己的。
- 然後,客戶端搜尋本地主機文件、儲存在本地電腦上的 IP 地址和名稱列表。
- 查詢域名系統 (DNS) 伺服器。
- 如果名稱仍未解析,則使用 NetBIOS 名稱解析序列作為備份。可以通過配置客戶端的 NetBIOS 節點類型來更改此順序。
Windows 客戶端將嘗試這些方法中的每一個,直到它成功解析名稱或用盡這些方法。