LMHOSTS 文件用于 NetBIOS 名称的查询,如果一台计算机的 NetBIOS 的节点类型为 B-节点,即用广播来查询主机 IP 时,如果被搜寻的 IP 位于其它子网时,由于广播无法跨越路由,这样导致广播查询失败,它会转去检查 LMHOSTS 文件(该文件类似与 HOSTS 文件,但有自己的一些规则)。
该文件存放在:
C:\Windows\System32\drivers\etc
里面有一示例文件 LMHOSTS.SAM,可以将其改名为 LMHOSTS,然后编辑。
创建 LMHOSTS 文件规则: Ø 每条数据单独一行 Ø IP地址必须位于第一列,其后跟着计算机名 Ø IP地址和计算机名之间至少一个空格或一个TAB Ø 计算机内若包含空格或特殊字符,必须将整个计算机名用 “” 括起来 Ø # 符号是注释符号,但跟以下关键字(必须大写)则另有含义
#PRE 系统启动时将带有 #PRE 的数据预加载(preload)到NetBIOS名称缓冲区。 102.54.94.123 popular #PRE
#DOM:域名
DOM 表示这是域控制器,其名为“域名”,该条数据后面需要添加 #PRE。 102.54.94.97 rhino #PRE #DOM:networking
#INCLUDE:文件名 将“文件名”所指的另一个 LMHOSTS 文件加入到此文件中。
#BEGIN_ALTERNATE 与 #END_ALTERNATE 这两个关键字间可插入多个 #INCLUDE,系统会读取第 1 个 LMHOSTS 文件,如果出错,那么会读取第2个 LMHOSTS,以此类推,如果遇到读取成功的,那么就会停住,该关键字具备容错功能。
\0xnn 计算机名中可以包含无法显示(non-printable)的特殊字符,但必须以双引号括起来。 102.54.94.102 "appname \0x14"
#MH
如果计算机中包含多张网卡,可以分别为每张网卡创建一条数据,但计算机名都相同,其IP地址为各网卡的IP地址。MH 为 Multihomed 的缩写。
LMHOSTS 文件比较适合于没有 WINS 服务器的环境,也解决了广播方式无法跨越其它网段的问题,它与广播方式的协同工作如下(假设没有WINS服务器): 1) 系统启动时,将 LMHOSTS 中设有 #PRE 的数据预加载到 NetBIOS 缓冲区。 2) 当主机查询其它计算机的IP地址时,先检查 NetBIOS 缓冲区。 3) 如果缓冲区中没有IP地址,将改用广播的方式。 4) 如果广播失败,再去检查 LMHOSTS 文件。 5) 如果检查LMHOSTS文件失败,发出警告消息。 6) 如果在LMHOSTS中找到对应项,就将该数据存入到NetBIOS缓冲区中以供下次使用。 使用 nbtstat –R 清除NetBIOS缓冲区,同时加载LMHOSTS中的#PRE记录。
使用LMHOSTS的缺点是每台计算机都要维护一份LMHOSTS文件,且当网络上的计算机有更改时,每台计算机的LMHOSTS文件也都必须做更改。对这个不便,可以让所有的计算机共享同一份 LMHOSTS 文件的方法来解决。假设,共享 LMHOSTS 文件的计算机名为 LMSERVER,LMHOSTS文件所在的文件夹为 LMShare,那么其他计算机可以在自己的 LMHOSTS 文件中添加下面的语句: #INCLUDE \\LMSERVER\LMShare\LMHOSTS
需要注意的是,如果服务器是在其它网段的话,由于不能广播获知其IP,那么应该在上述的语句前再添加一条数据: 192.168.2.188 LMShare #PRE #INCLUDE \\LMSERVER\LMShare\LMHOSTS
启用LMHOSTS 本地连接-->属性-->Internet协议版本-->属性-->高级-->WINS标签
|