[计算机软件及应用]NetBIOS.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《[计算机软件及应用]NetBIOS.ppt》由会员分享,可在线阅读,更多相关《[计算机软件及应用]NetBIOS.ppt(62页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、SUP-4 NetBIOS网络编程技术网络编程技术NetBIOSNetBIOS(NETwork Basic NETwork Basic Input/Output SystemInput/Output System,网,网络基本输入络基本输入/ /输出系统)定输出系统)定义了一种软件接口以及在义了一种软件接口以及在应用程序和连接介质之间应用程序和连接介质之间提供通信接口的标准方法提供通信接口的标准方法。它可以提供名字服务、。它可以提供名字服务、会话服务和数据库服务,会话服务和数据库服务,基于基于NetBIOSNetBIOS的比较典型的的比较典型的应用是获取远程计算机的应用是获取远程计算机的Mac
2、Mac地址、名称和所在工作地址、名称和所在工作组等信息。本章将对组等信息。本章将对NetBIOSNetBIOS网络编程技术进行网络编程技术进行介绍。介绍。本章知识点本章知识点SUP-4.1 NetBIOSSUP-4.1 NetBIOS协议及应用协议及应用SUP-4.2 NetBIOSSUP-4.2 NetBIOS开发接口开发接口SUP-4.3 SUP-4.3 在程序中实现在程序中实现NBTSTATNBTSTAT命令的功命令的功能能SUP-4.1 NetBIOS协议及应用协议及应用SUP-4.1.1 NetBIOSSUP-4.1.1 NetBIOS协议协议SUP-4.1.2 SUP-4.1.2
3、使用使用NBTSTATNBTSTAT命令命令SUP-4.1.1 NetBIOS协议协议pNetBIOS协议最初由协议最初由IBM开发,微软公司在此基础上开发,微软公司在此基础上对该协议进行了完善,并在对该协议进行了完善,并在Windows上提供了对上提供了对NetBIOS协议的支持。网络邻居功能就是基于协议的支持。网络邻居功能就是基于NetBIOS协议的。在协议的。在Windows中安装中安装TCP/IP协议的协议的同时就会安装同时就会安装NetBIOS协议。下面介绍一下在协议。下面介绍一下在Windows 2003中启用和配置中启用和配置NetBIOS协议的方法。协议的方法。 配置配置Net
4、BIOSp 右键单击桌面上的网络邻居图标,在弹出菜单中选择右键单击桌面上的网络邻居图标,在弹出菜单中选择“属性属性”,打开打开“网络连接网络连接”窗口窗口。p 右键单击右键单击“本地连接本地连接”图标,在弹出菜单中选择图标,在弹出菜单中选择“属性属性”,打开,打开“本地连接属性本地连接属性”对话框对话框。 配置配置NetBIOSp 选中选中“InternetInternet协议(协议(TCP/IPTCP/IP)”项,单击项,单击“属性属性”按钮,打开按钮,打开“InternetInternet协议(协议(TCP/IPTCP/IP)”属性对话框属性对话框。p 单击单击“高级高级”按钮,打开按钮,
5、打开“高级高级TCP/IPTCP/IP设置设置”对话框。单击对话框。单击“WINSWINS”选项卡,可以对选项卡,可以对NetBIOSNetBIOS协议进行设置协议进行设置。1LANA编号编号LANALANA(LAN AdapterLAN Adapter,LANLAN适配器)编号是适配器)编号是NetBIOSNetBIOS进行网络编程的关键进行网络编程的关键,它对应于网卡及传输协议的唯一组合。例如,假定某个工作站安,它对应于网卡及传输协议的唯一组合。例如,假定某个工作站安装了两块网卡,以及两种具有装了两块网卡,以及两种具有NetBIOSNetBIOS能力的传输协议(例如能力的传输协议(例如TC
6、P/IPTCP/IP和和NetBEUINetBEUI),那么将共有下面),那么将共有下面4 4个个LANALANA编号:编号:p 表示表示“TCP/IPTCP/IP网卡网卡1 1”对。对。p 表示表示“NetBEUINetBEUI网卡网卡1 1”对。对。p 表示表示“TCP/IPTCP/IP网卡网卡2 2”对。对。p 表示表示“NetBEUINetBEUI网卡网卡2 2”对。对。2名字服务名字服务NetBIOSNetBIOS协议支持建立名字服务器,负责查找协议支持建立名字服务器,负责查找目标主机对应的目标主机对应的IPIP地址,并赋予一个地址,并赋予一个NetBIOSNetBIOS名称。名字服
7、务提供的主要功能如名称。名字服务提供的主要功能如下:下:p添加名字,即注册一个添加名字,即注册一个NetBIOSNetBIOS名字。名字。p添加组名,即注册一个添加组名,即注册一个NetBIOSNetBIOS组名。组名。p删除名字,即取消一个删除名字,即取消一个NetBIOSNetBIOS名字和组名名字和组名的注册。的注册。p查询名字,即在网络中搜索查询名字,即在网络中搜索NetBIOSNetBIOS名字。名字。3会话服务会话服务会话服务提供的主要功能如下:会话服务提供的主要功能如下:p 调用,即打开一个到远程调用,即打开一个到远程NetBIOSNetBIOS名字的会话。名字的会话。p 侦听,
8、即侦听其他程序的连接请求。侦听,即侦听其他程序的连接请求。p 挂起,即关闭一个会话。挂起,即关闭一个会话。p 发送,即向会话对端的计算机发送一个数据包,并等待对方确认发送,即向会话对端的计算机发送一个数据包,并等待对方确认。p 无确认发送,即向会话对端的计算机发送一个数据包,但不需要无确认发送,即向会话对端的计算机发送一个数据包,但不需要对方确认。对方确认。p 接收,即等待从会话对端发送的数据包到达。接收,即等待从会话对端发送的数据包到达。4数据报服务数据报服务数据报服务提供的主要功能如下:数据报服务提供的主要功能如下:p 发送数据报,即向远程发送数据报,即向远程NetBIOSNetBIOS名
9、字发送一个数据报。名字发送一个数据报。p 发送广播数据报,即向网络中所有发送广播数据报,即向网络中所有NetBIOSNetBIOS名字发送数据报。名字发送数据报。p 接收数据报,即等待从发送数据报操作中到达的数据。接收数据报,即等待从发送数据报操作中到达的数据。p 接收广播数据报,即等待从发送广播数据报操作中到达的数据接收广播数据报,即等待从发送广播数据报操作中到达的数据。在在WindowsWindows中,如果安装了中,如果安装了NetBIOSNetBIOS协议,则系统将自动开放下列协议,则系统将自动开放下列端口:端口:p 137137端口,主要作用是在局域网中提供计算机的名称或端口,主要作
10、用是在局域网中提供计算机的名称或IPIP地址地址查询服务。查询服务。p 138138端口,主要作用是提供端口,主要作用是提供NetBIOSNetBIOS环境下的计算机名浏览功能环境下的计算机名浏览功能。p 139139端口,主要作用是提供文件和打印机共享的功能。端口,主要作用是提供文件和打印机共享的功能。SUP-4.1.2 使用使用NBTSTAT命令命令p 在在WindowsWindows命令窗口中执行命令窗口中执行NBTSTATNBTSTAT命令,可以获取指命令,可以获取指定远程计算机的基本信息,包括定远程计算机的基本信息,包括MacMac地址、计算机名和地址、计算机名和所属工作组等。所属工
11、作组等。NBTSTATNBTSTAT命令的格式如下:命令的格式如下:NBTSTAT -a RemoteName -A IP address -c -NBTSTAT -a RemoteName -A IP address -c -nn -r -R -RR -s -S interval -r -R -RR -s -S interval NBTSTAT参数的具体说明参数的具体说明参参 数数说说 明明-a RemoteName列出指定名称的远程机器的名称表,RemoteName表示指定的远程主机计算机名-A IP address列出指定 IP 地址的远程机器的名称表,IP address表示用点分法表
12、示的IP地址-c列出远程计算机名称及其IP地址的 NBT 缓存-n列出本地的NetBIOS名称-r列出通过广播和经由WINS解析的名称-R清除和重新加载远程缓存名称表-RR将名称释放包发送到WINS,然后启动刷新-s列出将目标IP地址转换成计算机NetBIOS名称的会话表-S列出具有目标IP地址的会话表interval重新显示选定的统计、每次显示之间暂停的间隔秒数。按Ctrl+C停止重新显示统计实例实例p NBTSTAT -A 192.168.5.168NBTSTAT -A 192.168.5.168p NBTSTAT -a LEE-THINKPADNBTSTAT -a LEE-THINKPA
13、DSUP-4.2 NetBIOS开发接口开发接口SUP-4.2.1 NetBIOSSUP-4.2.1 NetBIOS操作操作SUP-4.2.2 NCBSUP-4.2.2 NCB结构体结构体SUP-4.2.3 SUP-4.2.3 其他常用其他常用NetBIOSNetBIOS结构体结构体SUP-4.2.4 Netbios()SUP-4.2.4 Netbios()函数函数SUP-4.2.5 SUP-4.2.5 获取获取LANALANA上的所有上的所有NetBIOSNetBIOS名名字字SUP-4.2.6 SUP-4.2.6 获取网络适配器上的获取网络适配器上的MACMAC地址地址SUP-4.2.1
14、NetBIOS操作操作p 协议驱动程序对外公布协议驱动程序对外公布NetBIOSNetBIOS接口,并将接口,并将NetBIOSNetBIOS命令映射到协议驱动程序的命令映射到协议驱动程序的内部命令。内部命令。NetBIOSNetBIOS模拟器模拟器接收接收NetBIOSNetBIOS命令,将它们命令,将它们转换成转换成TDITDI(Transport Transport Driver InterfaceDriver Interface,传输驱,传输驱动程序接口)调用,然后使动程序接口)调用,然后使用用TDITDI接口将它们转发到传接口将它们转发到传输驱动程序。输驱动程序。p 在在Window
15、s 2003Windows 2003、Windows Windows XPXP、Windows 2000Windows 2000和和Windows NTWindows NT操作系统中,操作系统中,NetBIOSNetBIOS操作的流程操作的流程如下:如下:SUP-4.2.2 NCB结构体结构体typedef struct _NCB typedef struct _NCB UCHAR ncb_command; UCHAR ncb_command; UCHAR ncb_retcode; UCHAR ncb_retcode; UCHAR ncb_lsn; UCHAR ncb_lsn; UCHAR n
16、cb_num; UCHAR ncb_num; PUCHAR ncb_buffer; PUCHAR ncb_buffer; WORD ncb_length; WORD ncb_length; UCHAR ncb_callnameNCBNAMSZ; UCHAR ncb_callnameNCBNAMSZ; UCHAR ncb_nameNCBNAMSZ; UCHAR ncb_nameNCBNAMSZ; UCHAR ncb_rto; UCHAR ncb_rto; UCHAR ncb_sto; UCHAR ncb_sto; void (CALLBACK void (CALLBACK * *ncb_post
17、)(struct NCB);ncb_post)(struct NCB); UCHAR ncb_lana_num; UCHAR ncb_lana_num; UCHAR ncb_cmd_cplt; UCHAR ncb_cmd_cplt; UCHAR ncb_reserveX; UCHAR ncb_reserveX; HANDLE ncb_event; HANDLE ncb_event;NCB, NCB, * *PNCB;PNCB;1ncb_command命令编码可选值命令编码可选值说说 明明NCBACTION非标准NetBIOS 3.0命令NCBADDGRNAME向本地名字表中添加一个组名,组名在
18、网络中必须是唯一的NCBADDNAME向本地名字表中添加一个唯一的名字NCBASTAT获取本地或远程网络适配器的状态。如果指定了此编码,则成员变量_buffer指向填充了ADAPTER_STATUS结构体和NAME_BUFFER结构体数组的缓冲区NCBCALL打开与其他名字之间的会话NCBCANCEL取消之前挂起的命令NCBCHAINSEND向指定的会话伙伴发送两个数据缓冲区的内容NCBCHAINSENDNA向指定的会话伙伴发送两个数据缓冲区的内容,并且不等待对方确认NCBDELNAME从本地名字表中删除一个名字NCBDGRECV获取来自任意名字的数据包NCBDGRECVBC获取来自任意名字的
19、广播数据包NCBDGSEND向指定名字发送数据包NCBDGSENDBC向局域网中的所有计算机发送广播数据包NCBENUM用于枚举LANA编号。如果指定此编码,则成员变量ncb_buffer指定填充了LANA_ENUM结构体的缓冲区。NCBENUM不是标准的NetBIOS 3.0命令NCBFINDNAME决定指定名字在网络中的位置。如果指定此编码,则成员变量_buffer指定填充了FIND_NAME_HEADER结构体和FIND_NAME_BUFFER结构体的缓冲区NCBHANGUP关闭指定的会话NCBLANSTALERT只对Windows Server 2003、Windows XP、Wind
20、ows 2000和Windows NT等操作系统有效,提示用户持续时间在1分钟以上的局域网故障NCBLISTEN允许一个会话可以被其他名字打开NCBRECV从指定的会话伙伴获取数据NCBRECVANY从指定名字对应的会话中获取数据NCBRESET复位局域网网络适配器NCBSEND向指定的会话伙伴发送数据NCBSENDNA向指定的会话伙伴发送数据,并且不等待对方确认NCBSSTAT获取会话的状态。如果指定了此参数,则成员变量_buffer指向填充了SESSION_HEADER和SESSION_BUFFER结构体的缓冲区NCBTRACE激活或取消NCB跟踪。此命令目前不被支持NCBUNLINK断开
21、一个网络适配器的连接。此命令只为与之前版本的NetBIOS兼容而提供,但在Windows中无效2ncb_retcode返回编码可选值返回编码可选值说说 明明NRC_GOODRET操作成功NRC_BUFLEN提供了无效的缓冲区长度NRC_ILLCMD提供了无效的命令NRC_CMDTMO命令超时NRC_INCOMP消息不完整,应用程序正在执行其他命令NRC_BADDR缓冲区地址无效NRC_SNUMOUT会话编号越界NRC_NORES没有有效的资源NRC_SCLOSED会话已被关闭NRC_CMDCAN命令被取消NRC_DUPNAME在本地名字表中存在相同的名字NRC_NAMTFUL名字表已满NRC_
22、ACTSES命令已执行完成,指定名字拥有活动的会话,并且不再注册NRC_LOCTFUL本地会话表已满NRC_REMTFUL远端会话表已满,打开会话的请求被拒绝NRC_ILLNN指定了无效的名称编号NRC_NOCALL系统没有发现调用的名字NRC_NOWILD成员变量ncb_name中不允许通配符NRC_INUSE名字已经在远程适配器上使用NRC_NAMERR名字已被删除NRC_SABORT会话非正常结束NRC_NAMCONF检测到名字冲突NRC_IFBUSY接口忙NRC_TOOMANY命令太多,应用程序将在稍后重试命令NRC_BRIDGE成员变量ncb_lana_num没有指定有效的网络编号N
23、RC_CANOCCR执行取消操作后,命令已经结束NRC_CANCELNCBCANCEL命令无效,命令并未取消NRC_DUPENV名字已经被另一个本地进程占用NRC_ENVNOTDEF环境没有被定义,因此必须执行一个重置命令NRC_OSRESNOTAV操作系统资源被耗光,该命令稍候会重试NRC_MAXAPPS应用程序数量超过规定的最大值NRC_NOSAPS没有对NetBIOS有效的服务访问点(SAP,Service Acces Points)NRC_NORESOURCES请求的资源无效NRC_INVADDRESSNCB地址无效NRC_INVDDIDNCB DDID无效NRC_LOCKFAIL尝试
24、锁定用户区域失败NRC_OPENERR当设备驱动器执行打开操作时发生错误。错误编码并不在NetBIOS 3.0中定义NRC_SYSTEM发生系统错误NRC_PENDING异步操作并未结束NCB结构体其他成员变量结构体其他成员变量3 3ncb_lsnncb_lsn表示本地会话编号。在指定环境中此编号唯一标识一个会话。调用表示本地会话编号。在指定环境中此编号唯一标识一个会话。调用Netbios()Netbios()函数成函数成功执行了功执行了NCBCALLNCBCALL命令后返回此编号。命令后返回此编号。4 4ncb_numncb_num指定本地网络名字编号。调用指定本地网络名字编号。调用Netb
25、ios()Netbios()函数成功执行了函数成功执行了NCBADDNAMENCBADDNAME或者或者NCBADDGRNAMENCBADDGRNAME命令后返回此编号。此编号在所有数据包命令和命令后返回此编号。此编号在所有数据包命令和NCBRECVANYNCBRECVANY命令中使用命令中使用。5 5ncb_bufferncb_buffer指向消息缓冲区。可以使用表指向消息缓冲区。可以使用表SUP-4.4SUP-4.4中的命令访问消息缓冲区。中的命令访问消息缓冲区。命命 令令说说 明明NCBSEND发送消息NCBRECV接收消息NCBSSTAT接收请求状态信息NCB结构体其他成员变量结构体其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件及应用 计算机软件 应用 NetBIOS
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内