当您打开计算机开始访问网络资源时,就涉及到一个问题:名字解析,名字解析就是把需要访问的计算机名字解析成 IP 地址的过程。
Windows名字解析(3)
NetBIOS 名字解析
下面我们来讲讲 NetBIOS 名字解析。 Windows 解析 NetBIOS 名字时按照以下顺序的。
NetBIOS 名字缓存
NetBIOS 名字缓存和 DNS 客户端缓存类似,是用于存放已经获得的 NetBIOS 查询结果,这可以节约多次访问同一个 NetBIOS 名字的名字解析次数。您可以用 nbtstat –c 命令来获得 NetBIOS 名字缓存里的纪录 :
D:>nbtstat -c
Local Area Connection:
Node IpAddress: [10.22.78.16] Scope Id: []
NetBIOS Remote Cache Name Table
Name Type Host Address Life [sec]
SEEPS <20> UNIQUE 10.54.94.97 600
VBDBASE <20> UNIQUE 10.53.94.97 582
NetBIOS 名字缓存里的纪录也有有效期,缺省是 10 分钟。您可以用命令 nbtstat -R 来清除名字缓存。
在 NetBIOS 名字解析中有和 hosts 文件类似的文件 lmhosts 文件, lmhosts 文件也是用来存放静态的 NetBIOS 名字和 IP 地址映射的,它的位置也是在 %SystemRoot%system32driversetc 目录下。缺省情况下, lmhosts 文件并不存在,系统有一个 lmhosts 样本文件 lmhosts.sam ,您可以仿照 lmhosts.sam 文件来编写您的 lmhosts 。下面是一个样本 lmhosts 文件里的内容:
10.60.11.70 seeps
10.54.91.123 sh-fileserver #PRE
10.54.94.117 bj-fileserver #PRE
修改了 lmhosts 文件之后,你可以运行命令 nbtstat -R 来重新清除 NetBIOS 名字缓存以及重新装载 lmhosts 文件。您会注意到上面的 lmhosts 文件中有的记录后面有 #PRE ,有的没有。有 #PRE 表示这一条纪录在 lmhosts 文件被装载之后会被加到 NetBIOS 名字缓存中,而且不会过期。下面就是在重新装载上面这个 lmhosts 文件之后, NetBIOS 名字缓存里的内容:
Local Area Connection:
Node IpAddress: [10.60.11.70] Scope Id: []
NetBIOS Remote Cache Name Table
Name Type Host Address Life [sec]
BJ-FILESERVER <03> UNIQUE 10.54.94.117 -1
BJ-FILESERVER <00> UNIQUE 10.54.94.117 -1
BJ-FILESERVER <20> UNIQUE 10.54.94.117 -1
SH-FILESERVER <03> UNIQUE 10.54.91.123 -1
SH-FILESERVER <00> UNIQUE 10.54.91.123 -1
SH-FILESERVER <20> UNIQUE 10.54.91.123 -1
使用 lmhosts 文件可能会遇到与 hosts 文件类似的问题,如果 lmhosts 文件有错误的记录会导致不能正确访问目的计算机。

网友评论