![Windows 如何在没有 DNS 的情况下解析主机名?](https://linux22.com/image/541673/Windows%20%E5%A6%82%E4%BD%95%E5%9C%A8%E6%B2%A1%E6%9C%89%20DNS%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%A7%A3%E6%9E%90%E4%B8%BB%E6%9C%BA%E5%90%8D%EF%BC%9F.png)
我有一台 Windows 7 计算机和一台 MacOS X 10.6 计算机,它们使用 10 美元的集线器连接到同一个 LAN。在 MacOS 上,我在“首选项->共享”中将计算机名称设置为“mymac.local”。Windows 计算机的静态 IP 地址为 192.168.0.10,Mac 的地址为 192.168.0.20。两者的网络掩码均为 255.255.255.0,没有网关。
如果我从 Windows 计算机发出该命令,ping mymac.local
它将成功 ping 192.168.0.20。由于我的网络上没有 DNS,Windows 如何确定 IP 192.168.0.20 与“mymac.local”相关联?它是某种广播吗?使用了什么协议?
答案1
答案2
它使用(古代)网络基本输入输出系统协议及其名称服务的 Windows 实现,胜利。如果 DNS 服务器无法解析名称,则尝试 WINS 服务器,或者如果未定义,则进行 NEBIOS 调用。
请注意,有些路由器包含 DNS 服务器,并将每个 DHCP 客户端提供的名称添加到其中。如果您的路由器支持此功能,则 DNS 协议实际上用于解析名称解析查询。
答案3
为了完整性,也为了将来(重新)访问这个问题,Windows(在我的情况下是 Windows 10)主机还有另一种可能性来解析主机名。
Windows 10 有一个 hosts 文件,就像任何 Linux/Unix 一样,它位于 中%windir%\system32\drivers\etc
。
您手动或通过自动化方式输入的任何条目都将无需任何外部服务器或协议的帮助就能得到解决。