一、简单网络管理协议(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. asp天猫自主发码的请求

    这几天在做天猫自主发码.实现了通知和核销部门.其他的部分待后续实现. 值得注意的是consume回调中,要加入sign_method=md5

  2. php实现新闻页面

    首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...

  3. [HDOJ1043]Eight(康托展开 BFS 打表)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 八数码问题,因为固定了位置所以以目标位置开始搜索,把所有情况(相当于一个排列)都记录下来,用康托 ...

  4. leetcode:Partition List

    题目:Given a linked list and a value x, partition it such that all nodes less than x come before nodes ...

  5. 权限控制框架Shiro简单介绍及配置实例

    Shiro是什么 http://shiro.apache.org/ Apache Shiro是一个非常易用的Java安全框架,它能提供验证.授权.加密和Session控制.Shiro非常轻量级,而且A ...

  6. PHPStorm/webstorm tips

    phpstorm对于使用PHP开发web的人员来说,是一个非常不错的编辑开发IDE,以前用过sublime,但是相比于storm,sublime在浏览legacy代码,类代码编辑方面明显要逊色不少.同 ...

  7. EF CodeFirst-----简单demo示例

    关于EF CodeFirst的文章院子里有很多的学习资料,但大多数都是一些讲Model通过特性或是Fluent API与数据库之间形成映射的关系,看了相关的文章之后,Model如何映射到数据还是有些迷 ...

  8. UVa 11107 (后缀数组 二分) Life Forms

    利用height值对后缀进行分组的方法很常用,好吧,那就先记下了. 题意: 给出n个字符串,求一个长度最大的字符串使得它在超过一半的字符串中出现. 多解的话,按字典序输出全部解. 分析: 在所有输入的 ...

  9. 用sql获取某字符串中的数字部分的语句

    create function dbo.F_Get_No ( @No varchar(100) ) RETURNS bigint AS BEGIN WHILE PATINDEX('%[^0-9]%', ...

  10. BZOJ 1406 密码箱

    直接两层枚举就行了. 避免排序可以用set. #include<iostream> #include<cstdio> #include<cstring> #incl ...