我有一个 Windows 应用程序,它使用 DNS 多播记录发布自身。假设myapp.local。
安装后,它会将记录存储在主办方systemroot/drivers/etc 文件夹下的文件。
127.0.0.1 myapp
此配置对我的大多数客户都有效。本地服务器使用本地环回 (127.0.0.1) 解析“myapp”,LAN 中的所有其他计算机都可以通过多播记录访问该应用程序。
昨天,我第一次遇到了一个问题。同一个局域网中有两台计算机安装了 myapp,两台计算机都以多播方式发布其名称,但最奇怪的是,其中一台计算机使用多播解析 myapp 名称并忽略其本地 hosts 文件。
我认为 Windows 中的 DNS 解析优先级是:
- 主机名
- 网络 DNS 服务器
- 多播
但它一定是错的,否则我无法解释多播优先级与主机的关系。
类似这样的 ping 命令:ping myapp
答案是“myapp.local”。我检查了主机名是否正确,并且它是 tcpip DataBasePath 中的正确文件(Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
)
我还尝试从 GPO 设置中禁用多播解析:
重新启动并清理 DNS 和 NetBIOS 缓存后,它并没有改变。
DNS 解析顺序是否错误?如何强制忽略多播并设置具有最高优先级的主机?