![NSLookup 无法解析本地计算机的主机名](https://linux22.com/image/1597663/NSLookup%20%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E6%9C%AC%E5%9C%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%E4%B8%BB%E6%9C%BA%E5%90%8D.png)
我仔细阅读了这里的所有建议: Windows 无法解析主机名
我最近发现我无法解析任何 Windows 主机名(即计算机名称)。例如,如果打开命令提示符(所有计算机都运行 Windows 10 Enterprise 64 位)并输入 NSLOOKUP TEMP,我会收到以下消息:
*** router.asus.com can't find TEMP: None-existent domain
我可以 PING -a 192.168.3.101(我的台式计算机的静态 IP),这不仅成功,而且还报告了正确的主机名 TEMP。
此处的哪些断开的链接可能导致 NSLookup 无法解析名称 TEMP?
PS 我的以太网适配器的属性将路由器的网关指向为主 DNS:192.168.3.1。我可以成功地在外部互联网网站上执行 NSLookup,例如 msn.com。
答案1
因此,就像之前的帖子中提到的那样,您的路由器很可能不是您的 DNS 服务器,它只是代理,将您的请求转发到其他地方的真实 DNS 服务器。因此,如果外部 DNS 服务器尝试将您的 PC 主机名解析为 IP 地址,这是不可能的,因为:
- 主机名在全球范围内并不是唯一的,与 .org 等顶级域名的网站名称不同,因此可能有 100 000 台具有 TEMP 名称的 PC 拥有 100 000 个不同的 IP 地址
如果您确实希望您的设置能够解析本地主机名,您需要创建您自己的 DNS 服务器,例如作为 Windows Server 上的服务,然后如果您将您的 DNS 查询指向这个本地 DNS 服务器,那么它就可以工作。
答案2
您只需在运行 nslookup 时将路由器设置为 DNS 服务器。
输入以下命令进入 nslookup CLI
nslookup
将 DNS 服务器设置为路由器的 IP 地址。这样您的查询就可以直接发送到路由器。因此它能够知道特定本地设备的 IP 地址。
server <your router IP address>
我正在使用 Linksys 路由器,它的 IP 地址是 10.172.1.1。
我将在我的设置中输入以下代码:
server 10.172.1.1
设置 DNS 服务器后,您可以向它询问任何本地设备的主机名。它应该能够回答。