“深入NT”连续讲座(七) ——关于 LMHOSTS
 网龙首页 | 操作系统 | 网络硬件 | 组网建网 | 网络建设 | 架站技术 | IT认证 | 网络安全 | 网络存储 | 网龙论坛
首页 >> 操作系统 >> WindowsNT >> 新闻正文

“深入NT”连续讲座(七) ——关于 LMHOSTS

http://www.wapease.com/network/ 2004-7-21 浏览次数: [专题阅读]

  早在我们前面的《关于 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

此新闻共有21 2

Google
 

收藏该文章 | 发送给好友 | 打印该文章 | 我要投稿 | 去论坛讨论

·Windows NT中的即插即用
·NT Server的AT命令详解
·IIS组建Intranet完全手册
·Windows NT的硬盘管理特点
·Windows NT卷集和带区集的建立及应用
·Windows NT环境下的系统容错技术
·用NT Server作Internet网关
·保证 NT 系统安全的"独孤九剑"

共有评论查看评论
姓名:
发表评论请遵守相关规定!
*《互联网电子公告服务管理规定》
*《全国人大常委会关于维护互联网安全的规定》
万易简介 | 网站简介 | 栏目简介 | 服务报价 | 联系方式 | 万易诚聘 | 版权信息
万易网络 版权所有
www.wapease.com
未经书面许可,任何人不得转载本站信息
联系方式:Info@wapease.com 热线QQ:44977515