收藏 分销(赏)

SNMP协议运用在发现打印机设备.docx

上传人:精*** 文档编号:1783498 上传时间:2024-05-09 格式:DOCX 页数:11 大小:1.30MB
下载 相关 举报
SNMP协议运用在发现打印机设备.docx_第1页
第1页 / 共11页
SNMP协议运用在发现打印机设备.docx_第2页
第2页 / 共11页
SNMP协议运用在发现打印机设备.docx_第3页
第3页 / 共11页
SNMP协议运用在发现打印机设备.docx_第4页
第4页 / 共11页
SNMP协议运用在发现打印机设备.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、SNMP协议概念SNMP(简单网络管理协议)是目前在计算机网络中用的最广泛的网络管理协议,该协议是基于TCP/IP的网管标准,它包括协议本身、数据库的定义和相关概念。可管理对象包括主句、打印机、交换机等。SNMP此协议管理被管理设备和服务之间的通信,它被设计成一个轮询协议,使用一组简单的命令,设置和检索管理信息库(MIB)中的对象值。管理器发送的SNMP信息保存在UDP(无连接协议)数据报中,并且通过IP路由,因而,使得该代理和管理器驻留在不同的子网上,彼此之间也能通信。SNMP安装和配置(win 10 为例)1、 安装组件1) 在本地主机上启动SNMP服务并配置共同体:开始(右击) 控制面板

2、程序启动或关闭windows 功能2) 查看SNMP组件是否安装成功:开始(右击)控制面板系统与安全管理工具服务,服务列表中会出现“SNMP Service”服务2、 配置SNMP服务1) 设置SNMP Service属性打开“服务”,选择“SNMP Service”,查看“属性”页面,选择“安全”标签页,添加“public”只读团体,并且选择“接收来自任何主机的SNMP数据包”。2) 重新启动SNMP服务3、 查看端口是否开启选择“开始”“运行”输入“netstat -a -n”,按下回车出现结果,UDP 161 snmp UDP 162 snmptrap 两个snmp端口等,注意SNMP使

3、用的是UDP协议SNMP报文Snmp定义了5种数据协议单元(PDU,也就是5种报文):1) get - request操作:从代理进程处提取一个或多个参数值。2) get - next - request 操作:从代理进程处提取一个或多个参数的下一个参数值。3) Set-request 操作:设置代理进程的一个或多个参数值。4) Get - response 操作:由代理进程发出的一个或多个参数值。5) Trap操作:代理进程主动发出的报文,通知管理进程有事情发生。前面三种是偶管理进程想代理进程发出的,后两个是代理进程发给管理进程的。SNMP报文共有三个部分组成,即公共SNMP首部,get/s

4、et首部、trap首部,变量绑定(1) SNMP 报文的长度取决域变量的类型和值。 (2) 版本字段为 0 ,表示为 SNMP V1 。 (3) PDU 为协议数据单元,即分组。 PDU 类型 名称 0 Get-request 1 Get-next-request 2 Get-response 3 Set-request 4 Trap (4) 共同体为一个字符串,这是管理进程和代理进程之间的口令,是明文格式,默认为 public 。 (5) 对于 get 、 get-next 和 set 操作,请求标识由管理进程设置,然后由代理进程在 get-response 中返回。这个字段的作用是使客户进

5、程(目前是管理进程)能够将服务器进程(即代理进程)发出的响应和客户进程发出的查询进行匹配。这个字段允许管理进程对一个或多个代理进程发出多个请求,并且从返回的应答中分类。 (6) 差错状态字段是一个整数,由代理进程设置,指明有错误发生。 差错状态 名称 描述 0 NoError 没有错误 1 TooBig 代理进程无法把响应放在一个 SNMP 消息中发送 2 NoSuchName 操作一个不存在的变量 3 BadValue Set 操作的值或语法有错误 4 ReadOnly 管理进程试图改变一个只读变量 5 genErr 其他错误 (7) 在 get 、 get-next 和 set 的请求数据

6、报中,包含变量名称和变量值的表,对于 get 和 get-next 操作,变量值部分被忽略。SNMP团体名SNMP提供了一个基本级别的安全性,验证SNMP管理器和SNMP代理之间的发送消息,为每个被发送的SNMP消息添加一个组标识符,就可以进行这种验证。这个标识符就是所谓的SNMP团体名称,所有的SNMP消息必须包含一个团体名称,标准的团体名称是public。对象标识符(OID)每台SNMP主机(计算机或网络设备)都有一个或多个MIB,含有该主机上被管理对象的信息。MIB中的每个对象都有一个唯一的标签标识,即所谓的对象标识符(Object Identifier,OID)。SNMP陷阱当主机上发

7、生预定的事件时,SNMP代理可以产生一则被称作陷阱(trap)的消息。当代理收到一条含有他没有定义的团体名称的消息时,它将向SNMP管理器发送一条验证陷阱(authentication trap)消息,通知管理器,该主机出现消息验证故障。SNMP编程1、SNMP数据类型数据类型共分为三大类,即:(1) 通用类型(Universal)该类型通常被称为非聚合类型,在SNMP协议中有4种通用数据类型:1)INTEGER: 整型,是-2,147,483,6482,147,483,647的有符号整数;2)OCTET STRING: 字符串;3)OBJECT IDENTIFIER: 对象标识符;4)NUL

8、L: 空值。(2) 通用结构类型(Universal-constructed)结构类型指列表和表格,常被称作聚合类型。在SNMP协议中主要使用两种结构类型:1)SEQUENCE 用于列表。这一数据类型与大多数程序设计语言中的“structure”类似。一个SEQUENCE包括0个或更多元素,每一个元素又是另一个ASN.1数据类型。2)SEQUENCE OF type 用于表格。这一数据类型与大多数程序设计语言中的“array”类似。一个表格包括0个或更多元素,每一个元素又是另一个ASN.1数据类型。(3)应用类型(application)应用数据类型采用隐式定义,是引用SNMP的简单数据类型来

9、定义的。主要有6种:1)IpAddress: 以网络序表示的IP地址。因为它是一个32位的值,所以定义为4个字节;2)network address:网络地址,表示从一个特定协议族中选定的网络地址, SNMPv1仅支持32位IP地址;所以与IpAddress等效;3)counter:计数器是一个非负的整数,它递增至最大值,而后归零。SNMPv1中定义的计数器是32位的,即最大值为4,294,967,295;4)Gauge :也是一个非负整数,它可以递增或递减,但达到最大值时保持在最大值,最大值为232-1;5)time ticks:是一个时间单位,表示以0.01秒为单位计算的时间;6)opaq

10、ue:表示用于传递任意信息串的任意编码格式,它与SMI使用的严格数据输入格式不同。2、开源工具开源包:snmpget使用SNMP4J框架,snmpwalk使用Java Package开源包,下载地址分别为:http:/www.snmp4j.org/html/download.htmlhttp:/gicl.cs.drexel.edu/people/sevy/snmp/3、 信息获取方式在获取到被管理设备的团体名(community)和IP后,输入相应的对象标识符(OID)获取到被管理设备相关的信息,通过snmpwalk函数进行对被管理设备进行获取或设置信息,snmpwalk具体格式如下:snmp

11、walk -v 1或2c(代表SNMP版本) -c community IP地址 OID(对象标示符)Java相关代码详见:SNMP刺探信息工具1、Snmpwalksnmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)的设备的一些其他信息,比如cisco交换机或路由器IP地址、内存使用率等,也可用来协助开发SNMP功能。Windows下安装net-snmp进入net-snmp官网-snmp.org/download.html 下载net-sn

12、mp-5.6.1.1-1.x86.exe工具进行安装Snmpwalk的使用方法snmpwalk使用方法很简单,如下:snmpwalk -v 1或2c(代表SNMP版本) -c SNMP密码 IP地址 OID(对象标示符)v:指定snmp的版本, 1或者2,该参数必须有。c:指定连接设备SNMP读密码,该参数必须有。IP:指定要walk的设备的IP地址,该参数必须有。OID:代表要获取设备的指标oid,该参数不是必须的。例:获取windows系统进程数snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1.6这条命令的意思是:使用v1版本,

13、共同体为public,来对192.168.1.200的.1.3.6.1.2.1.25.1.6分支进行walk。SNMP与打印机相关的基础的OID及其数据结构.1.3.6.1.2.1.25.3.5.1.1.1 hrPrinterStatus 得到打印机的当前状态。SYNTAX INTEGER other(1), unknown(2), idle(3), printing(4), warmup(5) 说明:当打印机状态处于idle(1), printing(2), or warmup(3)状态时,打印机设备应该运行或者警告,当处于unknown状态时,设备状态则处于未知。1.3.6.1.2.1.2

14、5.3.5.1.2 hrPrinterDetectedErrorState 检测打印机错误状态。说明:错误状态由8位字节的位进行描述,具体定义为下:Condition Bit # hrDeviceStatuslowPaper 0 warning(3)noPaper 1 down(5)lowToner 2 warning(3)noToner 3 down(5)doorOpen 4 down(5)jammed 5 down(5)offline 6 down(5)serviceRequested 7 warning(3).1.3.6.1.2.1.43.12.1.1.3 prtMarkerColora

15、ntRole 得到打印机色剂的类型。SYNTAX INTEGER - Colorant Role other(1), process(3), spot(4) .1.3.6.1.2.1.43.12.1.1.4 prtMarkerColorantValue 得到打印机色剂的值。 SYNTAX OCTET STRING (SIZE(0.63).1.3.6.1.2.1.43.12.1.1.5 prtMarkerColorantTonality 得到打印机色剂的色调。 SYNTAX Integer32.1.3.6.1.2.1.43.13.4.1.9 prtMediaPathType得到媒介路径的种类。S

16、YNTAX INTEGER other(1), unknown(2), longEdgeBindingDuplex(3), shortEdgeBindingDuplex(4), simplex(5) .1.3.6.1.2.1.43.13.4.1.10 prtMediaPathDescription 得到媒介路径的描述。SYNTAX OCTET STRING (SIZE(0.255).1.3.6.1.2.1.43.13.4.1.11 prtMediaPathStatus 得到媒介路径的状态。SYNTAX SubUnitStatus.1.3.6.1.2.1.43.5.1.1.1 prtGenera

17、lConfigChanges 常规配置更改。 SYNTAX Counter32.1.3.6.1.2.1.43.5.1.1.2 prtGeneralCurrentLocalization 打印机当前本地化SYNTAX Integer32 (1.65535).1.3.6.1.2.1.43.5.1.1.3 prtGeneralReset 打印机重置 SYNTAX INTEGER notResetting(3), powerCycleReset(4), - Cold Start resetToNVRAM(5), - Warm Start resetToFactoryDefaults(6) - Rese

18、t contents of - NVRAM to factory defaults .1.3.6.1.2.1.43.5.1.1.4 prtGeneralCurrentOperator 打印机当前操作SYNTAX OCTET STRING (SIZE(0.255).1.3.6.1.2.1.43.5.1.1.6 prtInputDefaultIndex 输入默认指数SYNTAX interger32.1.3.6.1.2.1.43.5.1.1.7 prtOutputDefaultIndex 输出默认指数SYNTAX interger32.1.3.6.1.2.1.43.6.1.1.2 prtCover

19、Description 打印机外壳描述SYNTAX OCTET STRING (SIZE(0.255).1.3.6.1.2.1.43.6.1.1.3 prtCoverStatus 打印机外壳状态SYNTAX INTEGER other(1), doorOpen(3), doorClosed(4), interlockOpen(5), interlockClosed(6) .1.3.6.1.2.1.43.5.1.1.7.1 prtOutputIndex 输出索引 SYNTAX interger32.1.3.6.1.2.1.43.5.1.1.7.2 prtOutputType 输出类型 SYNTA

20、X INTEGER other(1), unknown(2), removableBin(3), unRemovableBin(4), continuousRollDevice(5), mailBox(6), continuousFanFold(7) .1.3.6.1.2.1.43.5.1.1.7.3 prtOutputCapacityUnit 输出容量单位SYNTAX CapacityUnit.1.3.6.1.2.1.43.5.1.1.7.4 prtOutputMaxCapacity 输出最大容量 SYNTAX Integer32.1.3.6.1.2.1.43.5.1.1.7.5 prtOu

21、tputRemainingCapacity 输出剩余容量 SYNTAX Integer32.1.3.6.1.2.1.43.5.1.1.7.6 prtOutputStatus 输出状态 SYNTAX SubUnitStatus .1.3.6.1.2.1.43.5.1.1.7.7 prtOutputName 输出打印机名称 SYNTAX OCTET STRING (SIZE(0.63).1.3.6.1.2.1.43.5.1.1.7.8 prtOutputVendorName 输出供应商名称 SYNTAX OCTET STRING (SIZE(0.63).1.3.6.1.2.1.43.5.1.1.7

22、.9 prtOutputModel 输出打印机模型 SYNTAX OCTET STRING (SIZE(0.63).1.3.6.1.2.1.43.5.1.1.7.10 prtOutputVersion 输出打印机版本 SYNTAX OCTET STRING (SIZE(0.63).1.3.6.1.2.1.43.5.1.1.7.11 prtOutputSerialNumber 输出打印机序列号 SYNTAX OCTET STRING (SIZE(0.63).1.3.6.1.2.1.43.5.1.1.7.12 prtOutputDescription 输出打印机描述SYNTAX OCTET STR

23、ING (SIZE(0.255).1.3.6.1.2.1.43.5.1.1.7.13 prtOutputSecurity 输出打印机安全性SYNTAX PresentOnOff.1.3.6.1.2.1.43.5.1.1.7.14 prtOutputDimUnit 输出打印机尺寸单位SYNTAX MediaUnit.1.3.6.1.2.1.43.5.1.1.7.15 prtOutputMaxDimFeedDir 输出打印机最大尺寸单位 SYNTAX Integer32 .1.3.6.1.2.1.43.5.1.1.7.16 prtOutputMaxDimXFeedDir 输出打印机X轴最大尺寸单位

24、 SYNTAX Integer32 .1.3.6.1.2.1.43.5.1.1.7.17 prtOutputMinDimFeedDir 输出打印机最小尺寸单位 SYNTAX Integer32 .1.3.6.1.2.1.43.5.1.1.7.18 prtOutputMinDimXFeedDir 输出打印机X轴最小尺寸单位 SYNTAX Integer32.1.3.6.1.2.1.43.5.1.1.7.19 prtOutputStackingOrder 输出堆叠顺序 SYNTAX INTEGER unknown(2), firstToLast(3), lastToFirst(4) .1.3.6.1.2.1.43.5.1.1.7.20 prtOutputPageDeliveryOrientation 输出打印递送方向 SYNTAX INTEGER faceUp(3), faceDown(4)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服