软件工程论文基于Snmp协议网吧管理软件开发技术解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程论文基于Snmp协议网吧管理软件开发技术解析
基于Snmp协议网吧治理软件开发技术解析
摘要:由于公司业务不断扩大,外部网吧由最初的几家进展到现在的20多家,每家都使用一台QNO FVR360路由器,由于位置分散,不易治理,需要开发一套简单的网管软件,以便于网管的日常爱护。
在此解析了基于Snmp协议访问网络设备的开发方法。
关键词:Snmp;网络;.NET;Oracle
1概述
1.1 Snmp协议
SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络治理信息的方法。
SNMP也为设备向网络治理工作站报告问题和错误提供了一种方法。
只需要明白网络设备的治理IP,就能够查看网络设备的状态,无需登录名或密码。
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来获得,这款软件关于网管来说并不生疏,通过它能够明白当前设备的状况,能把网络设备的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.6.1.2.1.1.3.0,其他属性Oid也按此方法查找。
3猎取网络设备属性值.
NET能够通过调用SnmpSharpNet库,来获得网络设备属性值。
具体操作如下。
(1)下载SnmpSharpNet库,并进行引用。
(2)编写调用类库。
public class SnmpWork{public SnmpWork(){}
#region通过oid字符数组获得相应的值
public static Dictionary<string,string>getOIDValue(stringhost,string[]oid){ //返回变量
Dictionary<string,string>dic=new
Dictionary<string,string>();OctetString community=new OctetString("public");AgentParameters param=new AgentParameters(community);param.Version=SnmpVersion.Ver1;IpAddre ss 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
result=(SnmpV1Packet)target.Request(pdu,param);if(result!=null){if(resul t.Pdu.ErrorStatus==0){for(int
i=0;i<result.Pdu.VbList.Count;i++){dic.Add(result.Pdu.VbList[i].Oid.ToSt ring(),result.Pdu.VbList[i].Value.ToString());}}}target.Close();return dic;}#endregion}
(3)界面调用代码。
string[]oidvalue=new
string[“1.3.6.1.2.1.1.3.0”,”1.3.6.1.2.1.2.2.1.10.4”];Dictionary<string,string >di=MENUGlobal.SnmpWork.getOIDValue(dev[i,1],oidvalue);string sysTime=di[oidvalue[0]];string receiveByte=di[oidvalue[1]];
4数据库设计
由于只是针对同一型号的路由器进行操作,因此数据库设计比较简单。
4.1设备表
create table SNMPDEVICE(ID INTEGER not null,
--设备编号DEVICENAME V ARCHAR2(64),
--设备名称DEVICEIP V ARCHAR2(64),
--设备治理IP地址ISLOCK INTEGER default 1,
--是否锁定(0:锁定;1:开启)PORT INTEGER
,--端口号REALNAME V ARCHAR2(32),
--设备所属爱护人员用户名TELEPHONE VARCHAR2(16)
-爱护人员联系)
4.2表OId
create table SNMPOID(DEVICEID INTEGER not null,--设备编号
ID INTEGER not null,--Oid编号
OIDV ALUE V ARCHAR2(64)not null,--Oid值
OIDNAME V ARCHAR2(64),--Oid名称
ISLOCK INTEGER default 1,--是否锁定(0:锁定;1:开启))
4.3网络设备历史数据
create table SNMPHISTORY(DEVICEID INTEGER not null,--设备编号OIDID INTEGER not null,--Oid编号V ALUE 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.。