《基于snmp协议网吧管理软件开发技术解析》由会员分享,可在线阅读,更多相关《基于snmp协议网吧管理软件开发技术解析(6页珍藏版)》请在金锄头文库上搜索。
1、计算机软件工程论文软件工程论文:基于Snmp协议网吧管理软件开发技术解析摘 要: 由于公司业务不断扩大,外部网吧由最初的几家发展到现在的20多家,每家都使用一台QNO FVR360路由器,由于位置分散,不易管理,需要开发一套简单的网管软件,以便于网管的日常维护。在此解析了基于Snmp协议访问网络设备的开发方法。关键词:Snmp;网络;.NET;Oracle1概述1.1 Snmp协议SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。只需要知道网络设备的管理IP,就可以查看网络设备的状态,无需登录名或密
2、码。1.2开发工具Oracle+Ajax+Vss+VS2008。1.3基础设置为保障使用Snmp协议与网络设备相连,必须要把网络设备的防火墙关掉或者在防火墙设置中允许Snmp协议通过。2获取路由器参数值主要是通过已知的网络设备管理IP和交换机的OID来查询实现,例如Qno FVR360路由器系统时间标识为1.3.6.1.2.1.1.3.0。但大多数时候网络设备的OID信息是未知的,如何知道OID属性值成为要点。一种方式是通过厂家获取,另一种方式是通过软件获得。在这里介绍一下通过软件怎样获得。可以通过软件GetIf来获得,这款软件对于网管来说并不陌生,通过它可以知道当前设备的状况,能把网络设备的
3、OID信息、端口状态、路由表、ARP、支持的协议以及网络设备中mac-address-table中的信息都读了出来。GetIf使用:(1)打开Getif在Host name输入IP地址后,点击“Start”,如果连接成功会在最下面状态栏中出现SysInfovariables Ok提示,如图1所示。(2)在MBrowser标签卡中察看Oid值,例如察看系统时间。如图2所示,点击iso-org-dod-internet-mgmt-mib-2-sysUpTime-sysUpTime后运行Start后出现system.sysUpTime.0:0:1:53:43.00,点击后在最下角出现Oid值为1.3
4、.6.1.2.1.1.3.0,其他属性Oid也按此方法查找。3获取网络设备属性值.NET可以通过调用SnmpSharpNet库,来获得网络设备属性值。具体操作如下。(1)下载SnmpSharpNet库,并进行引用。(2)编写调用类库。public class SnmpWorkpublic SnmpWork()#region通过oid字符数组获得相应的值public static DictionarygetOIDValue(stringhost,stringoid)/返回变量Dictionarydic=new Dictionary();OctetString community=new Octe
5、tString(public);AgentParameters param=new AgentParameters(community);param.Version=SnmpVersion.Ver1;IpAddress agent=new IpAddress(host);UdpTarget target=new UdpTarget(IPAddress)agent,161,2000,1);Pdu pdu=new Pdu(PduType.Get);foreach(string singleoid in oid)pdu.VbList.Add(singleoid);SnmpV1Packet resul
6、t=(SnmpV1Packet)target.Request(pdu,param);if(result!=null)if(result.Pdu.ErrorStatus=0)for(int i=0;iresult.Pdu.VbList.Count;i+)dic.Add(result.Pdu.VbListi.Oid.ToString(),result.Pdu.VbListi.Value.ToString();target.Close();return dic;#endregion(3)界面调用代码。stringoidvalue=new string“1.3.6.1.2.1.1.3.0”,”1.3.
7、6.1.2.1.2.2.1.10.4”;Dictionarydi=MENUGlobal.SnmpWork.getOIDValue(devi,1,oidvalue);string sysTime=dioidvalue0;string receiveByte=dioidvalue1; 4数据库设计由于只是针对同一型号的路由器进行操作,所以数据库设计比较简单。4.1设备表create table SNMPDEVICE(ID INTEGER not null,-设备编号DEVICENAME VARCHAR2(64),-设备名称DEVICEIP VARCHAR2(64),-设备管理IP地址ISLOCK
8、INTEGER default 1,-是否锁定(0:锁定;1:开启)PORT INTEGER,-端口号REALNAME VARCHAR2(32),-设备所属维护人员用户名TELEPHONE VARCHAR2(16)-维护人员联系电话)4.2表OIdcreate table SNMPOID(DEVICEID INTEGER not null,-设备编号ID INTEGER not null,-Oid编号OIDVALUE VARCHAR2(64)not null,-Oid值OIDNAME VARCHAR2(64),-Oid名称ISLOCK INTEGER default 1,-是否锁定(0:锁定;
9、1:开启))4.3网络设备历史数据create table SNMPHISTORY(DEVICEID INTEGER not null,-设备编号OIDID INTEGER not null,-Oid编号VALUE VARCHAR2(64),-值HISTORYDT DATE not null-时间)5结 语Snmp是一种简单的网络管理协议,简单、灵活、功能强大、易于实现和调试,是开发网管软件的首选协议。但是在开发之前需要考虑一些问题:(1)网络设备是否支持Snmp协议。(2)Snmp传输层协议是基于UDP的,所以需要采取其他方式保证其安全。(3)如果需要定时轮询取值,需要根据网络状况来设定定时时间。(4)保护好网络安全,防止恶意攻击。参考文献1晏明峰.用SNMP管理互联网络.第3版.中国水利水电出版社,2001.2李明江.SNMP简单网络管理协议.电子工业出版社,2007.3胡成松,汪凯.SNMP网络管理.中国电力出版社,2001.2019整理的各行业企管,经济,房产,策划,方案等工作范文,希望你用得上,不足之处请指正