NetBIOS协议

2021/8/2 23:10:09

本文主要是介绍NetBIOS协议,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

NetBIOS协议

  • 1.作用
  • 2.用法
  • 3.原理
  • 4. nbtstat常用命令

NETBIOS协议主要用于数十台计算机的小型局域网。系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名-——特指基于NETBIOS协议获得计算机名称——解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享。NetBIOS是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API。

1.作用

通过NetBIOS协议,可以读取 windows 主机用户名列表,共享目录名列表,级名列表,时间服务类型以及 MAC地址。
我们常用的windows系统在局域网中共享文件的功能就是利用NetBIOS协议实现的。
比如,可以打开网上邻居,找到当前网络中的机器,并查看其中的共享文件。
也可以在开始-》运行 窗口,输入\\192.168.1.10\shareDirectory访问共享文件,而如果要把其中的 IP 192.168.1.10 换成目标机器的主机名称(NetBIOS名),也是可以正常访问的,这个功能也是依靠NetBIOS完成。

2.用法

共享文件很简单,右键文件夹,属性,共享就可以了。或者打开“网上邻居”,也能看到局域网中所有的主机(启用NetBIOS,并成功在主浏览服务器中注册)
开源界有一个叫做 nbtscan 的命令行程序,可以获取NetBIOS信息获取,支持windows,linux。
Windows中还提供 nbtstat 命令查询涉及NetBIOS信息的网络机器(windows下的nbtscan也是基于此完成)。
nbtstat -n 查看本机NetBIOS信息
nbtstat -A 192.168.1.106 查看指定IP的 NetBIOS 信息

3.原理

我们只要在自己的电脑上输入一条命令就能看到局域网中,其他电脑的详细信息,甚至能看到其共享文件列表。这是怎么做到的呢?
在一个域里面有一台主浏览器,主浏览器负责创建和维护网络共享资源列表。
当网络中有一台电脑(非浏览器)开机时,会首先给主浏览器发送一个登陆请求,主浏览器接受请求后,自动把此电脑信息加入共享资源列表,此时通过网上邻居就能看到这台开机的电脑信息了。
当这台电脑关机时,同样会发送一个登出消息,这时网上邻居中也就看不到这台电脑了;但是如果这台电脑是非正常关机,那么就会出现,可以在网络邻居中看到,但却无法访问此电脑的共享资源。(一般,主浏览器需要连续三次,累计12*3=36分钟没有收到某台计算机的仍然正常运行的信息时,才认为该 主机已经关机)
主浏览器是由竞选产生,主浏览器工作期间,共享资源列表的维护工作有主浏览器完成,但主浏览器会定时(15分钟)将整个列表复制给被浏览器。
上述例子中,网上邻居的共享资源功能只是NetBIOS众多功能的一种。

4. nbtstat常用命令

用法:nbtstat [-a RemoteName] [-A IP_address] [-c] [-n] [-R] [-r] [-S]

[-s] [interval]
-a列出为其主机名提供的远程计算机名字表。
-A列出为其IP地址提供的远程计算机名字表。
-c列出包括了IP地址的远程名字高速缓存器。
-n列出本地NetBIOS名字。
-r列出通过广播和WINS解析的名字。
-R消除和重新加载远程高速缓存器名字表。
-S列出有目的地IP地址的会话表。
-s列出会话表对话。

NBTSTAT生成的列标题具有以下含义:

  • Input:接收到的字节数。

  • Output:发出的字节数。

  • In/Out:无论是从计算机(出站)还是从另一个系统连接到本地计算机(入站)。

  • Life:在计算机消除名字表高速缓存表目前“度过”的时间。

  • Local Name:为连接提供的本地NetBIOS名字。

  • Remote Host:远程主机的名字或IP地址。

  • Type:一个名字可以具备两个类型之一:unique or group
    在16个字符的NetBIOS名中,最后一个字节往往有具体含义,因为同一个名可以在同一台计算机上出现多次。这表明该名字的最后一个字节被转换成了16进制。

  • State:NetBIOS连接将在下列“状态”(任何一个)中显示:

    • Accepting: 进入连接正在进行中。
    • Associated: 连接的端点已经建立,计算机已经与IP地址联系起来。
    • Connected: 这是一个好的状态!它表明您被连接到远程资源上。
    • Connecting: 您的会话试着解析目的地资源的名字-IP地址映射。
    • Disconnected: 您的计算机请求断开,并等待远程计算机作出这样的反应。
    • Disconnecting: 您的连接正在结束。
    • Idle: 远程计算机在当前会话中已经打开,但现在没有接受连接。
    • Inbound: 入站会话试着连接。
    • Listening: 远程计算机可用。
    • Outbound: 您的会话正在建立TCP连接。
    • Reconnecting: 如果第一次连接失败,就会显示这个状态,表示试着重新连接


这篇关于NetBIOS协议的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程