NetBIOS 名字解析 NetBIOS 名字缓存NetBIOS 名字缓存和 DNS 客户端缓存类似,是用于存放已经获得的 NetBIOS 查询结果,这可以节约多次访问同一个 NetBIOS 名字的名字解析次数。您可以用 nbtstat –c 命令来获得 NetBIOS 名字缓存里的纪录 : C:\Documents and Settings\Administrator>nbtstat -c Local Area Connection: Node IpAddress: [192.168.1.89] Scope Id: [] NetBIOS Remote Cache Name Table Name Type Host Address Life [sec] serv <20> UNIQUE 192.168.1.100 600 VBDBASE <20> UNIQUE 192.168.1.10 582 NetBIOS 名字缓存里的纪录也有有效期,缺省是 10 分钟。您可以用命令 nbtstat -R 来清除名字缓存。 在 NetBIOS 名字解析中有和 hosts 文件类似的文件 lmhosts 文件, lmhosts 文件也是用来存放静态的 NetBIOS 名字和 IP 地址映射的,它的位置也是在 %SystemRoot%system32driversetc 目录下。缺省情况下, lmhosts 文件并不存在,系统有一个 lmhosts 样本文件 lmhosts.sam ,您可以仿照 lmhosts.sam 文件来编写您的 lmhosts 。下面是一个样本 lmhosts 文件里的内容: 192.168.1.70 sharps 192.168.1.123 qd-ftpserver #PRE 192.168.1.117 bj-ftpserver #PRE 修改了 lmhosts 文件之后,你可以运行命令 nbtstat -R 来重新清除 NetBIOS 名字缓存以及重新装载 lmhosts 文件。您会注意到上面的 lmhosts 文件中有的记录后面有 #PRE ,有的没有。有 #PRE 表示这一条纪录在 lmhosts 文件被装载之后会被加到 NetBIOS 名字缓存中,而且不会过期。下面就是在重新装载上面这个 lmhosts 文件之后, NetBIOS 名字缓存里的内容: Local Area Connection: Node IpAddress: [192.168.1.89] Scope Id: [] NetBIOS Remote Cache Name Table Name Type Host Address Life [sec] bj-ftpserver <03> UNIQUE 192.168.1.117 -1 bj-ftpserver <00> UNIQUE 192.168.1.117 -1 bj-ftpserver <20> UNIQUE 192.168.1.117 -1 qd-ftpserver <03> UNIQUE 192.168.1.123 -1 qd-ftpserver <00> UNIQUE 192.168.1.123 -1 qd-ftpserver <20> UNIQUE 192.168.1.123 -1
动态查询 NetBIOS 名字如果在 NetBIOS 名字缓存中不能找到想查询的 NetBIOS 名字, Windows 会根据计算机的节点类型来决定接下来如何查询。我们有必要来介绍一下节点类型。你在运行了命令 ipconfig /all 之后会看到节点类型( Node Type ): Windows IP Configuration Host Name . . . . . . . . . . . . : www1 Primary Dns Suffix . . . . . . . : qd.tech51.net Node Type . . . . . . . . . . . . : Mixed IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : qd.tech51.net tech51.net 这个节点类型决定了 Windows 如何从网络上去解析一个 NetBIOS 名字。共有如下四种节点类型: B 节点( Broadcast ):只在本地网络发广播包来查询 NetBIOS 名字 P 节点( Point to Point ):只向 WINS 服务器查询 NetBIOS 名字 M 节点( Mixed ):首先尝试广播查询,如果查询失败,再向 WINS 服务器查询 H 节点( Hybrid ):首先向 WINS 服务器查询 NetBIOS 名字,如果查询失败,再广播查询 这里需要介绍一下 WINS 服务器,它的全称是 Windows Internet Name Service 。 WINS 服务器提供 NetBIOS 名字查询服务。如果您的计算机配置了 WINS 服务器,您的计算机就会在 WINS 服务器上注册它的 NetBIOS 名字和 IP 地址。其他计算机查询 WINS 服务器就可以知道您的计算机的 IP 地址了。您运行命令 nbtstat -n 可以看到您的计算机注册的 NetBIOS 名字 : Local Area Connection: Node IpAddress: [192.168.1.70] Scope Id: [] NetBIOS Local Name Table Name Type Status www1 <00> UNIQUE Registered tech51 <00> GROUP Registered qd <20> UNIQUE Registered 查询 lmhosts 文件如果查询 NetBIOS 名字缓存和通过网络做 NetBIOS 名字解析都失败, Windows 会读 lmhosts 文件来解析 NetBIOS 名字。我们已经知道 lmhosts 文件中有 #PRE 后缀的纪录会被装载到 NetBIOS 名字缓存中,现在 Windows 只会检查那些没有 #PRE 后缀的纪录。 如果前面三个步骤都解析失败,那么 NetBIOS 名字解析就失败了。 (责任编辑:admin) |