| 早在我们前面的《关于 NetBIOS》(三)中我们提到了 NetBIOS 绑定了 TCP/IP 协议的名字解析方法中有一项就是 LMHOSTS。当时简单的说明如下:LMHOSTS 是一种在存储在本地机器上的纯文本的主机文件,采用的是 LAN Manager格式。其一般是在广播查询失败后才用到,其方法是通过标记 #PRE 将 LMHOSTS 名预先加载到本地的 NetBIOS 名字缓存,以避免使用广播查询用到的主机名。今天我们来看一下有关 LMHOSTS 的更多东西。
一、认识 LMHOSTS 文件
LMHOSTS 文件是个纯文本文件,微软提供了一个示例程序 LMHOSTS.SAM,位于 C:\WinNT\System32\Drivers\Etc 目录下(跟以前的示例说明一样,我们这里的路径是“蓝网实验室”所采用的,朋友们可自行参照自己的实际安装情况而灵活改变)。如果我们需要启用 LMHOSTS 文件查询(至于什么时候会用到这种解析方式,我们在下面会讲到),则应该将其改名为 LMHOSTS,当然推荐的方法是制作副本(即另存为 LMHOSTS),这样可免除将原文件失手改错而不得不从安装光盘里解压还原出来的麻烦。下面是“蓝网实验室”NT服务器中 LMHOSTS 文件的部分内容: # # The following example illustrates all of these extensions: # # 102.54.94.97 rhino #PRE #DOM:networking #net group's DC # 102.54.94.102 "appname \0x14" #special app server # 102.54.94.123 popular #PRE #source server # 102.54.94.117 localsrv #PRE #needed for the include # # #BEGIN_ALTERNATE # #INCLUDE \\localsrv\public\lmhosts # #INCLUDE \\rhino\public\lmhosts # #END_ALTERNATE # # end of this file.
由上面的示例我们可以看出,LMHOSTS 文件跟我们在前面已经接触过的 HOSTS 文件的格式一样,当然其规则也一样,比如: #字符是用来注释的; IP 地址必须放在一行的第一栏,地址和主机名之间必须有空格; 计算机名称最长为 16 个字符,但是只能输入 15 个(为什么?回去看看《关于 WINS(二)》吧^_^)。
但是与 HOSTS 不同的是,LMHOSTS 文件中可以指定执行某种特殊功能的特定的命令。它们也是用 # 标记的,但如果看到有下面的特殊字符串,则表明其为命令字:
#PRE——这个命令放在 IP 地址和名称后面,表示当系统启动时,先将这个地址预先载入(Preload)到 Cache(内存高速缓存)中。查询时,系统先从 Cache 中开始,如果失败,再利用广播,再失败,才到本 LMHOSTS 文件中顺序读取。
#DOM:domain_name——这个命令放在计算机 NetBIOS 名字之后,表明它是一个域控制器(Domain Controller),这里 domani_name 是域名,表明该控制器属于哪一个域。
#INCLUDE <Filename>——这个命令表明将 filename 所指向的另一个 LMHOSTS 文件加入到本文件中,系统从该文件中读取 IP 地址和 NetBIOS 名字。Heatch 记得当年应付等级考试啃 C 时就遇到过相同的格式,当然在两年前风行一时的 config.sys 多重启动配置时也有相似的例子[Include],即使现在我们用 DreamWaver 做网页不是也还是有 Server-Side Include 吗,说这么多只是想证明它的好处——集中管理 LMHOSTS 文件,即可以将所有用户共享的 LMHOSTS 文件放到服务器上,每个用户再利用 #INCLUDE 命令把它添加到自己的 LMHOSTS 文件中。
#BEGIN_ALTERNATE 和 #END_ALTERNATE 命令必须配套使用,它们的作用是可以在一个 LMHOSTS 文件中指定多个 #INCLUDE 命令,即是说,如果我们有两个以上的域控制器,那么我们就可以 INCLUDE 其上的的 LMHOSTS 文件,一旦某个控制器“牺牲”,可立即用别的域控制器来替代。
\0xnn——这里的 \0xnn 命令是用来在 LMHOSTS 文件中指定包含非打印字符(Non-Printable)的 NetBIOS 名字,它们必须用引号括起来。正如前面的《关于 WINS(二)》所讲,这些非打印字符只用于特殊的设备名称,并且只能放在计算机名称后面第16个字符的位置(我的计算机名称没有15个字符那么长啊——按空格键嘛),如示例中的102.54.94.102 "appname \0x14"
关于 Preload 的特别说明: 1、一个 LMHOSTS 文件中最多只允许 Preload 100 个 IP 地址和计算机名称(我偏要输入 101 个怎么着!——怎么着?多的一个忽略不计!); 2、#INCLUDE 命令所指向的文件中的所有项都必须加上 #PRE 命令(我偏不加又怎么着!——怎么着?忽略不计); 3、修改注册表增加预载数目:主键 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters,新建字符串值 MaxPreLoads,输入自己想要的数目。 哎呀,又打瞌睡了,讲到这里先啦!
在上一讲里,我们通过微软提供的范例文件,对 LMHOSTS 文件有了较深的认识,接下来我们看一下如何应用和管理 LMHOSTS 文件。
二、LMHOSTS 文件的应用
安装过 Windows NT 4.0 Server 的网友很清楚,就是如果安装了 TCP/IP 协议,则我们依次选取“开始”/“设置”/“控制面板”/“网络”/“协议”/“TCP/IP 通信协议”/“属性”/“WINS 属性”,则可以在当前页框里看见,系统默认的是“启用 LMHOSTS 查询”,同时还可以启用的是“启用 DNS ”。按照我们前面讲到的,如果想要使用保存在其他目录中甚或其他计算机中的 LMHOSTS 文件,则可以单击旁边的“导入 LMHOSTS”按钮来获取。 由我们前面的《关于 W 此新闻共有2页 1 2 |