我开发的SNMP编译器和浏览器

什么是SNMP

SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。

SNMP信息

 MIB,Management Information Base:管理信息库,由网络管理协议访问的管理对象数据库,它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量。SMI,Structure of Management Information:管理信息结构,用于定义通过网络管理协议可访问的对象的规则。SMI定义在MIB中使用的数据类型及网络资源在MIB中的名称或表示。
  使用SNMP进行网络管理需要下面几个重要部分:管理基站,管理代理,管理信息库和网络管理工具。管理基站通常是一个独立的设备,它用作网络管理者进行网络管理的用户接口。基站上必须装备有管理软件,管理员可以使用的用户接口和从MIB取得信息的数据库,同时为了进行网络管理它应该具备将管理命令发出基站的能力。
  管理代理是一种网络设备,如主机,网桥,路由器和集线器等,这些设备都必须能够接收管理基站发来的信息,它们的状态也必须可以由管理基站监视。管理代理响应基站的请求进行相应的操作,也可以在没有请求的情况下向基站发送信息。
  MIB是对象的集合,它代表网络中可以管理的资源和设备。每个对象基本上是一个数据变量,它代表被管理的对象的一方面的信息。
  最后一个方面是管理协议,也就是SNMP,SNMP的基本功能是:取得,设置和接收代理发送的意外信息。取得指的是基站发送请求,代理根据这个请求回送相应的数据,设置是基站设置管理对象(也就是代理)的值,接收代理发送的意外信息是指代理可以在基站未请求的状态下向基站报告发生的意外情况。
  SNMP为应用层协议,是TCP/IP协议族的一部分。它通过用户数据报协议(UDP)来操作。在分立的管理站中,管理者进程对位于管理站中心的MIB的访问进行控制,并提供网络管理员接口。管理者进程通过SNMP完成网络管理。SNMP在UDP、IP及有关的特殊网络协议(如,Ethernet, FDDI, X.25)之上实现。

AAC-MIB DEFINITIONS ::= BEGIN
****************************************************************************************************
MIB文件是以DEFINITIONS ::= BEGIN 开始,最后一行以END结束。
DEFINITIONS ::= BEGIN 前面是库名称,如这里的是AAC-MIB,这里库名称就像是一个系统中的
对象名,是唯一的!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

IMPORTS
****************************************************************************************************
IMPORTS标识当前库文件需要引入其它的类文件,编译才不会出错.引入格式为[对象]FROM[库文件],像:
IpAddress
FROM RFC1155-SMI
MODULE-IDENTITY, OBJECT-TYPE
FROM SNMPv2-SMI
RowStatus,DisplayString
FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF
-- EntryStatus
-- FROM RMON-MIB
dlink-common-mgmt FROM DLINK-ID-REC-MIB;
****************************************************************************************************
要引人的对象
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

swDlinkAACMIB MODULE-IDENTITY
LAST-UPDATED "9911220000Z"
ORGANIZATION "Working Group"
CONTACT-INFO
" "
DESCRIPTION
"The Link AAC module MIB."
::= { dlink-common-mgmt 5}

swAACCtrl OBJECT IDENTIFIER ::= { swDlinkAACMIB 1 }

-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------

swAACAuthenAdminState OBJECT-TYPE
SYNTAX INTEGER {
other(1),
disabled(2),
enabled(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object indicates the Access Authentication is enable or
disable."
::= { swAACCtrl 1}

****************************************************************************************************
引入文件标识结束后就是本类的对象节点描述.
其中 MODULE-IDENTITY, OBJECT-TYPE都是定义的一些宏,这些在RFC1155, RFC2578里面都可以找到,
swDlinkAACMIB 和 swAACAuthenAdminState分别是其实例。其中swAACAuthenAdminState为例:
SYNTAX INTEGER表示类型为整型,且是枚举值,其中,SYNTAX 为宏OBJECT-TYPE定义的关键字
MAX-ACCESS read-write,表示可读写
STATUS current 表示状态是可用的

DESCRIPTION 是一些描述信息

::= { swAACCtrl 1} 是swAACAuthenAdminState的值,也就是OBJECT-TYPE中定义的VALUE部分
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

END
****************************************************************************************************
最后一行以END结束
****************************************************************************************************

例子:
LOOGSON-MIB DEFINITIONS::=BEGIN
IMPORTS
enterprises,OBJECT-TYPE,Integer32,TimeTicks
FROM SNMPv2-SMI
OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF
TEXTUAL-CONVENTION, DisplayString
FROM SNMPv2-TC;
loogson OBJECT IDENTIFIER ::= { enterprises 29881 }
cq8401 OBJECT IDENTIFIER ::= { loogson 3 }
test OBJECT IDENTIFIER ::= { cq8401 1 }

MachType OBJECT-TYPE
SYNTAX OCTET STRING
ACCESS read-only
STATUS current
DESCRIPTION "设备类型"
::={ test 1 }

END

我开发的SNMP编译器和浏览器的更多相关文章

  1. iOS开发UI篇—简单的浏览器查看程序

    iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...

  2. iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示

    iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示 本文介绍其简单使用: 第一步:在本地建立一个访问的服务端.  打开本地终端,在本地新建一个文件夹,在该文件夹中存放测试的html页面.   ...

  3. 在 .NET 中开发基于 Chrome 内核的浏览器-创建一个简单浏览器

    首先在 http://www.cftea.com/tools/downloads/Cef.zip 下载文件包. 一.将文件解压拖入到 Visual Studio 对应的 WinForm 项目中. 二. ...

  4. Linux C编程学习之开发工具1---GCC编译器

    GCC简介 GCC(GNU Compiler Collection)是一套功能强大.性能优越的编程语言编译器,它是GNU计划的代表作品之一.GCC以GPL和LGPL许可证发行,它是类Unix和苹果电脑 ...

  5. WEB前端开发人员须知的常见浏览器兼容问题及解决技巧

    所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的 ...

  6. HTML5移动Web开发(十)——在浏览器中启动手机原生应用

    用户可以在浏览器中启动移动设备的原生应用程序,比如地图.电话.短信等,具体能够启动哪些应用程序,这取决于该移动设备上哪些原生应用是否允许从浏览器启动. 新建ch02r05.html <!doct ...

  7. HTML5移动Web开发(九)——优化浏览器视口宽度设置

    每个移动设备都有自己默认的视口宽度,如果你不显示的设置它的值,在渲染页面的时候你可能会得不到你想要的效果.比如,如果不设置iPhone的视口宽度,它将会按照980像素的宽度渲染页面,如果你的页面设计不 ...

  8. iOS开发UI篇——简单的浏览器查看程序

    一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边 ...

  9. 网站开发中使用javascript获取浏览器滚动条宽度

    在网站开发中,有时候需要获取浏览器滚动条的宽度,在武汉蚂蹄软件服务中心的技术人员指导之下,我实现了该需求.记录如下: 首先说明一下原理: ①生成一个div,设置滚动条不可见,记录其宽度: ②将上面的d ...

随机推荐

  1. formValidator表单验证示例

    <script type="text/javascript">$(document).ready(function(){ $.formValidator.initCon ...

  2. discuz中方法

    discuz中检验是否是邮箱 function isemail($email) { && strlen($email) <= && preg_match(&quo ...

  3. Redis的持久化的两种方式drbd以及aof日志方式

    redis的持久化配置: 主要包括两种方式:1.快照  2 日志 来看一下redis的rdb的配置选项和它的工作原理: save 900 1 // 表示的是900s内,有1条写入,则产生快照 save ...

  4. gfw列表

    https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt

  5. bootstrap style for jQuery UI Dialog

    页面引用: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...

  6. javascript验证香港身份证

    var assert = require('assert'); describe('test', function() { it('coc', function() { var testCard01 ...

  7. virtualbox ubuntu 网络连接 以及 连接 secureCRT

    参考http://luowei828.blog.163.com/blog/static/31031204201263125415257/ 用Host-Only 方案      ip: VirtualB ...

  8. Exhange上添加IMAP4

    1.登录到Exchange admim Center,选择servers,双击servers名称,选择IMAP4 2.服务器上查看任务管理器中的服务器,找到exchange imap4两个服务器是否开 ...

  9. Win7与Mint双系统安装体验

    双系统安装前的准备 1.安装前的准备 安装双系统可能会对磁盘文件带来一些影响,为了避免在安装过程中由于系统瘫痪造成不必要的损失,所以我们在准备安装双系统之前,要对PC机中的重要文件进行备份,对资料要做 ...

  10. c语言中三个点的解释 : variadic

    3.6 Variadic Macros A macro can be declared to accept a variable number of arguments much as a funct ...