如何找出如何在客户端计算机上解决DNS?

在Windows 7客户端上,当我ping一个局域网主机MYSTERY时,它给了我正确的IP。 但是,当我做nslookup MYSTERY,它说不存在的域。 我检查了两个在ipconfig列出的DNS,并发现主机名MYSTERY确实没有列出。 DHCP服务器也没有条目。 在执行ipconfig / flushdns之后会发生同样的情况。 在本地窗口主机文件中也没有input。

我怎样才能找出客户在哪里得到解决的IP?

注:MYSTERY是configuration为joinnetworking域的Synology Rackstation。

您的Windows机器必须具有某种mDNSparsing器( Bonjour ),让它来自iTunes,Skype或其他安装了mDNSparsing器的软件。 如果安装了parsing程序,则ping将正确parsing,因为现在在Windows Vista及更高版本中使用了LLMNR 。 LLMNR利用mDNSparsing器返回logging。

Synology使用一个称为avahi的守护进程,这是一个Multicast DNS / mDNS / DNS-SD服务器。 Synology从出厂时开始就将其configuration为“RackStation”或主机名称。

如果你有一台Mac, dns-sd -B会向你显示多播服务。 你会看到_http._tcp.local。 为RackStation列出的服务。

dns-sd -G v4 RackStation.local应为您的dns-sd -G v4 RackStation.local提供正确的IP地址

dns-sd -L RackStation _http._tcp. 应该返回所有的服务信息,这包括端口号,串口,型号等

这也适用于DiskStation。 我在DiskStation上做了testing。 RackStation应该是一样的。

(这个答案可能是错的,@ xeon似乎是在正确的轨道上,我在这里学到了一些东西。)


DNS查找失败的原因是因为ping没有使用DNS来parsing该名称。

nslookup是DNS查找的命令。 ping另一方面也将尝试使用NetBIOS / WINS和hosts文件进行名称parsing。 最有可能的情况是,这个名字是通过前者获得的。

您可以使用nbtstat -c列出最近看到的NetBIOS名称和IP地址,或者如果要主动search名称,可以使用nbtstat -c nbtstat -a <device> 。 请记住, -a将需要更长的时间,因为它必须尝试每个接口一次。 (你不能告诉它跳过广播/只使用WINS)

-r选项可以让你将通过广播解决的问题与通过WINS解决的问题进行比较,但是这个问题已经变得更加先进了。

检查你的Windows 主机文件,以确保你没有硬编码条目。 这将强制名称parsing,即使它不能在那里parsing。