一、简单网络管理协议(SNMP,Simple Network Management Protocol)构成了互联网工程工作小组(IETF,Internet Engineering Task Force)定义的Internet协议簇的一部分。
1.作用:
想象一个由服务器,工作机,三层交换机等设备组成的网络。如果我想在工作机中,通过一种方式能够查询三层交换机下接入设备的ip,mac等信息,怎么做到呢? 我想知道服务器当前运行了多少天,难道必须远程登录主机才能知道吗?当然不用,我们可以简单的发送一些事先协定好的数据给服务器,服务器也会按规定的数据格式返回自己的信息。这个规定好的数据格式就是SNMP。其目标是管理互联网上众多厂家生产的软硬件平台。通过SNMP可以读取设置任何支持SNMP协议的各种设备。
 
2.用法:
想要体验snmp协议提供的功能,可以使用开源的Net-snmp,它支持unix,unix-like,windows多种操作系统,提供命令行形势的调用,或者c和perl形势的lib。
windows下还有专门的snmp API可以调用,非常方便啊。
常用的  api  包括  SnmpMgrOpen(),SnmpMgrClose(), SnmpMgrRequest() , 可以从网上搜索相关资料学习。
 
3.原理:
两个概念:
  OID项:是每个设备某一参数的身份证号,有点类似操作系统中的 “路径”,比如    /usr/bin/ping
  MIB库:保存了该参数的名称、类型、取值意义等各项细节描述。
四个操作:
  GET:获取指定 OID 值。
  GETNEXT:读取当前OID 的下一个OID值,并将其作为新的“当前OID”。以达到只记一个OID便可遍历所有值的功能。
  SET:设置指定OID值。
  TRAP:用于设备主动向监控程序反馈结果,避免监控程序不停轮询,也能及时得到敏感数据结果。
 
 
二、网络基本输入输出系统NetBIOS:Network Basic Input/Output System)的缩写
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众多功能的一种。
 
 
参考资料:
《网络扫描技术揭秘》李瑞民
netbios协议
 
netbios编程实例

SNMP 和 NetBios协议理解的更多相关文章

  1. IIC协议理解(转)

    目录 IIC协议理解(转) 个人小结记录 (记一下这个就够了) 以下为转载记录 概述 概述 输出级 主设备与从设备 速率 时序 空闲状态 起始位与停止位 数据的有效性 数据的传送 工作过程 主设备向从 ...

  2. TCP/IP协议理解

    TCP/IP协议理解 一.    协议分层 由于ISO标准中的网络模型是个7层模型,但是由于7层模型对于当时的网络厂商来说太过复杂,很多厂家采用了简化的4层模型来实现网络设备,4层模型也就成了事实的网 ...

  3. SNMP简单网络管理协议

    声明:以下内容是学习谌玺老师视频整理出来(http://edu.51cto.com/course/course_id-861.html) SNMP(Simple Network Management ...

  4. SNMP简单网络管理协议(转载)

    SNMP SNMP 网络管理的历史 美国国防部设计了世界上头几个包交换网之一的ARPANET,在70年代,TCP/IP协议族正式被定为军方通信标准,随着此协议的广泛使用,网络管理成了一件大事.在80年 ...

  5. HTTP协议理解

    HTTP(Hyper Text Transfer Protocol)超文本传输协议,是一种请求响应式协议,类似两国会晤中需要遵守的规则.那么,其中有什么内容特点呢? HTTP特点: 1)支持客户端/服 ...

  6. HTTP协议理解与应用总结

    总结了自己在实际工作场景中遇到的与http协议相关的一些内容的理解. Request & Response Request格式 <request-line> 比如:GET /api ...

  7. NEC红外遥控协议理解与实现

    红外发射管有2个管脚,发送的是经过38KHz时钟调制过的信号.例如下图使用PWM产生一个等占空时钟信号用于调制. 接收管收下来的信号已经经过了解调,可以直接连接系统的外部中断脚. 下面通过逻辑分析仪来 ...

  8. 【Linux】给Linux配置SNMP用户以及协议

    1 检查是否已经安装snmp的rpm包Ideploy:~ # rpm -aq | grep snmp libsnmp15-5.4.2.1-8.12.10.1 snmp-mibs-5.4.2.1-8.1 ...

  9. 从GO内存模型与调用协议理解defer closure的坑

    资料参考: 官网defer介绍: https://blog.golang.org/defer-panic-and-recover 深入解析go: 多值返回: https://tiancaiamao.g ...

随机推荐

  1. 索引 split2

    当往一个已经满了的索引块中插入新的索引条目时,将发生索引块的split,在9i下,分两种不同的情况进行split: (1)如果插入的索引键值不是最大的,将发生50-50的split,也就是说有bloc ...

  2. 如何理解JAVA的跨平台特性

    1.java的跨平台,是指java在运行时是凌驾于os之上,是在jvm中运行的,跟os没有直接联系. 2.java跨平台主要是由java的编译方式决定的,因为java是通过jvm先编译再执行,它编译的 ...

  3. javascript 一个关于时间排序的算法(一个页面多个倒计时排序)

    上周要做一个活动页面 秒杀列表页 需要一个时间的算法排序 自己琢磨了半天想了各种算法也没搞出来,后来问了下一个后台的php同学 他写了个算法给我看了下 ,刚开始看的时候觉得这就是个纯算法,不能转化成页 ...

  4. CMS 垃圾回收日志

    CMS 垃圾回收日志 https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs http://www.blogjava.net/D ...

  5. 一、Oracle分析函数入门

    分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值. 分析函数和聚合函数的不同 ...

  6. POI刷新数据后的函数(公式)更新问题

    使用POI将Excel模板中的数据进行更新,这应该是很常见的操作 下面就贴上我的一小段代码 public class ModifyExcel { /** * @param fileName Excel ...

  7. 【笨嘴拙舌WINDOWS】GDI(1)

    GDI:Graphics Device Interface 图形设备接口. 操作系统从命令行界面到图形界面的过度是施乐公司实验室对计算机普及作出的不可估量的贡献,苹果公司乔布斯与微软公司比尔盖茨对其的 ...

  8. vijos 1379 字符串的展开

    23333333333333333 #include<iostream> #include<cstdio> #include<cstring> #include&l ...

  9. cURL: PHP并发处理方式

    function classic_curl($urls, $delay) { $queue = curl_multi_init(); $map = array(); foreach ($urls as ...

  10. wxWidgets简单的多线程

    #include <wx/wx.h> #include <wx/thread.h> #include <wx/event.h> #include <wx/pr ...