1.何谓NetBIOS名称
NetBIOS名称是一个占用16个字符的字符串,在Microsoft网络中会用到NetBIOS名称的计算机名称,域名,工作组名等都是NetBIOS名称。
网络中的计算机会将其所拥有的NetBIOS名称与IP地址注册到网络上,而且任何一个NetBIOS名称在网络上只能够使用一次。
可以利用nbtstat –n 命令来检查计算机目前所注册的NetBIOS名称。
2.通过NetBIOS名称来解析IP地址
名称解析的方法有以下几种:
- 检查NetBIOS名称缓存
- 广播
- 直接向WINS服务器查询
3. NetBIOS节点类型
网络中的计算机会采用哪一种名称解析方法来查找其他计算机的IP地址,这要依这台计算机所采用的NetBIOS节点类型而定:
- b-node(使用广播方式)
- p-node(P2P,对等式,直接询问WINS)
- m-node(混合方式,mix,先广播,后询问wins)
- h-node(hybrid交互式(P←→M),先问wins,再广播)
4.使用LMHOSTS文件
a.LMHOSTS文件的内容:位于其他网段内的计算机名称与IP地址等信息。
b.LMHOSTS的运行:
无WINS服务器的环境:
首先,如果LMHOSTS文件内有项信息被设为#PRE,则计算机启动时,此想信息就会预先被加载到NETNIOS名称缓存内;然后,当计算机要查询其他计算机的IP地址时,它会先检查NETBISO名称缓存内是否已存在此计算机的IP地址;接着,如果从NETBIOS名称缓存内找不到对方的IP地址,则改用广播方式, 如果广播方式也失败,则改向LMHOSTS文件查询;如果在LMHOSTS文件中找到对方的IP地址,则此信息会被存储在NETBISOS名称缓存中一段时间,以供下次使用。
有WINS服务器的环境:
名称注册:WINS客户端在启动时,会主动将它的NetBIOS计算机名称、IP地址等信息传送给WINS服务器,然后注册到此WINS 服务器的数据库内。
更新注册名称:WINS客户端默认会在有效期过一半时,自动向WINS服务器更新租约,只要更新成功,此名称的有效期限就会自动延长。
名称查询:若WINS客户端为H节点,则先检查要查询的计算机名称是不是自己——检查NetBios缓存——向wins服务器查询——发出广播——检查LMHOSTS——检查HOSTS或转向DNS查询
名称释放:当WINS客户端关机时,它会通知WINS服务器释放所有它所注册的名称;另外如果WINS客户端将其某个服务停止,它也会通知WINS服务器释放该服务所注册的名称。
NetBIOS接口的头文件和库文件分别是:nb30.h 和 Netapi32.lib.