网络局域网网络通道实时监控程序

网络监控程序  时间:2021-03-09  阅读:()

局域网网络通道实时监控程序

业§ :i!

S CIENCE&IECHNOLO0YNFORM^1 ON

局域网网络通道实时监控程序

王志东

(江阴市供电公司电力调度中心信息组214400)

学术论坛

摘要:通过本程序,我们可以实时有效的监控局域网网络通道的通断情况,简单判断故障原因,这给我们网络管理员带来了很大

方便,使我们能够即时去发现问题,解决问题,缩短了故障时间,很大的提高了网络运行效率.

关键词:丢包率网络通道实时监摔

中图分类号:TP31文献标识码:A文章编号:l672—379l(2006)11(a)02l0—031前言

目前,在我们电力行业,我们的很多工

作都越来越依赖于网络,一旦网络发生故障,

很多工作就无法开展,甚至处于停顿,为了能

够及时的处理好故障,这就要求我们能够实

时地去知道网络通道的情况.但是有很多地

方还没有网络通道实时监控的手段,只能被

动的去扫描通道或者等着哪个区域网络断掉

后报到信息中心,我们才能知道某区域网络

断了,这给我们网络维护人员带来了很大不

便,同时也浪费了很多宝贵的时间.尤其是县

级供电公司,没有专用资金去购买测试产品,

像一套好的福录克f1 uke网络测试仪需要10

多万,这就要求我们要有一套简便迅速的实时监测手段来主动地去判断网络通道的情况,这样我们就能够迅速的去发现问题,解决问题,缩短故障的时间,也大大提高了网络运行的效率.

鉴于此情况,我研究了一些dos命令的特征以及相关技术文献,以a s p为依托,dr e amwe av e为框架,编写了一套网络测试程序来达到实时监控的目的,此程序目前已在运行中2正文

课题确立了,究竟通过什么方法来实现

呢?这又成了一个难题.

般,我们要知道一个网络通道通不

通,只要知道对方一台机器或者交换机的地址,然后用ping命令ping一下就可以知道了.但是我们是直接看到ping的结果才知道网络通不通的,那怎么样让程序来自动判断呢?如果能把ping的结果保存为一个文件,那我就可以通过去读那个文件来知道结果了.这时候我查找了ping命令的相关资料,知道有个">"

命令符,可以把ping的结果保存到txt

文档中.例如:pinga 172.26.64.10>d:\newwebs\ping\64.10.txt这样我就

把ping的结果保存到了D:\new—webs\ping文件夹的64.10.txt这个文档中了.分析txt文件中的数据可以看出,我们只要读取

"0%"这个丢包率,就知道这次Ping的结

果没有丢包,也就是说网络是正常的.保l仔是保存了下来,那怎么样来让程序读取txt中丢包率这个数据呢?这又成了目前要克服的难题.

为了解决这个问题,我查阅r相关书籍,找到在asP中,有一个FS0(FileSYstemObject),即文件系统对象,和TextSystemObject文本流对象.

从这两个对象的使用方法中我们可以看到,如果先使用FileSystemObject对象的0penTextFile方法就能够打开64.10.txt的文本文件,然后生成了一个Text Stre am文本流对象,接着使用TextStream的TextStream.readall0方法,就能够读取64.10.txt文本的内容了,然后我们可以在文本流里去匹配"(,"%"这两个字符,这样我们就可以读取"0%"的丢包率了.当然首先得创建一个FileSystemObject对象:

Setfs-Server.CreateObj ect("Scripting.

FileSystemObject")

然后打开64.10.txt文件:

SetTextFile=fs.0penTextFile("d:\newweb s\ping\64.10.txt",1)

接着读取文本流:TextBuffer=TextFile.

ReadAll然后去匹配"(","%"这两个关键字符,因为看到文本里面只有一个"("和"%"字符,所以只要用for循环匹配到第一个就可以了,而"("总是在"%"前面,所以可以使用嵌套for循环,在第一个for循环匹配到"("

这个字符后,在从这个字符开始匹配"%"字符,这样就可以节省很多匹配的时间.

Fori=1 toLen(TextBuffer)

IfMid(TextBuffer,i,1)="("Thenforj=itoLen(TextBuffer)

IfMid(TextBuffer,j,1)=chr(37)thentl:Mid(TextBuffer,i+l,ji 1)

EndIfnext

EndIf

Next

这里面len是取字符串长度的函数,而mid是取字符的函数,chr(37)是%的Assic码,tl这个变量就是读出来的丢包率的参数了.这样通过ping命令读取丢包率的方法来判断通道情况的几个难点都解决了,似乎这个监控程序就可以完成了?其实不然,越往下深入,发现还有很多问题要解决.

还有就是怎么来调用DOS的ping命令来让它自动执行?同时为了把丢包率的历史纪录保存下来,方便以后查询,我们还应该把读出来的丢包率数据存储到数据库中.这里就不得不说一下Wscript.SheH对象了,Wscript.SheH对象有很多属性和方法,我们主要用到它的Run()方法,下面详细介绍

下该方法的使用,其语法如下:

Wshshel 1.Run(srtcommand.

【intWindow Stylel,lblnWaitOnReturn])

Run方法创建一个新的进程,该进程以intWindow Styl e窗口样式执行strC ommand.

参数strC ommand:在strC ommand参数

内部的环境变量被自动扩展.

参数intWindow Style:这是为新进程在

210科技资讯S C IENCE&fECHNO[O GYINF ORMAfIONSTARTUPINF0结构内设置的wShow

Window元素的值.其意义与ShowWindow

中的nCmdShow参数相同.

参数blnwaitOnReturn:如果未指定blnWaitOnRetum或其值为FALSE,则该方

法立即返回到脚本继续执行而不等待进程结

束,若binWaitOnReturn设为TRUE,则

Run方法返回由应用程序返回的任何错误代

码,如果未指定blnWaitOnReturn或其值为

FALS E,则Run返回错误代码0.

现在就是要使用Wsh调用系统的Ping命

令,通过fso文件系统组建创建临时文件,

再将Ping的结果重定向到这个文本文件中

去.然后再通过fso文件系统对象和文本流

对象TextStream读取丢包率数据,最后就

是把数据录入数据库.

首先,新建一个批处理文件c.b at,这个

文件将被asP调用.该文件代码如下:

Ping—a 172.2664.10>d:\new—webs\ping\64l0.txt

64.10.txt是存储ping结果的文件,

再编写Ping.ASP文件,代码如下:

SetWShSheU=Server.CreateObj ect

("WScript.Shell")

RetCode=WShShel1.Run("d:\newwebs\ping\c.Bat",1,True)

运行ping.asp文件后,它就会自动执行bat文件中的ping命令了,而且会把结果存储到64.10.txt文本中.

这样把上面打开文件的代码和读取丢包率数据的代码加到ping.asp的页面中,一个最简单的完整流程就出来了,

不过这只是可以监测一个交换机的情况,而像我们公司的主干网有很多的交换机组成,那么以我们公司为例,我们的主干交换机主要有调度大楼的楼层交换机,11个220KV变电所的交换机,西郊生产区,29个乡镇的区域城网交换机,只要让程序不断的去ping这些主干交换机的ip地址,得到相关的丢包率信息,就可以实时的了解当地当时的网络情况.为此,在设计c.b at批处理文件时,就要考虑设置多条ping命令的代码,这里我设置了27个主干网络交换机的ping命令,以及一个测试ip地址,这个利用上述方法,我们同样可得到28个丢包率参数,t 1,t2. . .t28.同时设置ping.asp这个程序每10秒钟自动刷新执行一次,代码如下:

<METAhttpequiv—REFRE SHcontent=10urlping.asp>

或者<bodyon]oad"setTimeout(this.

1 ocation.reload()#,l0);">

那么执行ping.asp这个程序加上l0秒的

学术论坛S CIENCK&TECHNOLOOYINFORMA—TIO~2006NO31刷新时间,平均每3分钟我们可以得到tlt28这28个参数的一次数据,也就是说程

序每3分钟向网络中自动进行扫描一次,判

断主干网络的情况.

这里不得不说一下在执行ping.asp时候

的一个要点,就是网页执行的限制超时问

题,一般网页默认的限制超时时间为90秒,

就是说一个网页如果90秒没有执行完成,系

统就会认为它超时了,那样就不会继续执行

了.所以我们必须要修改这个限制超时的时

间.我们的程序执行差不多是3分钟,为了

保险起见,我们可以设成300秒,5分钟那

就没问题了.

代码如下:

<%Server.SeriptTimeOut=300%>

到这里这个程序的难点要点基本上就都

解决了,我们可以顺着思路去完善这个程序

了.

下面创建一个ping.mdb的数据库,创

建一个loss表,设立30个字段:id(自动

编号),riqi(日期/时间),t 1…t28(文

本),这个表就是用来存放28个丢包率参数

的数据以及当时的时间的,这样做的好处就

是方便我们以后查询这些历史数据.数据库

表1

建好了,数据也去出来了,那么可以把数据

存到数据库中去了,我们在ping.asp的代码

后面加上如下代码就可以了:tt=n o w()

setrs=server.CreateObj ectflladodb.recordset")sql="insertintoloss(riqi,tl…)values

(¨ '&tt&"',l l'&tl&"…)"Setrs=conn.Execute(sq 1)

数据录入后我们就可以通过这些最新的数据去判断网络当时的状况了.接下来,我们就要设计读取数据库,以及表现当时网络状况的页面了.我们设为index.asp.

读取数据比较简单,只要执行如下sql代码就可以了:sql='selectfromlosswhereriqi=

(selectmax(riqi)fromloss)"

这样我们每次取出的都是最新的数据.另外设一个数组变量t(28),把tl—t28的数据都存到数组t(1)-t(28)里.

数据读取出来后,我们就要考虑它的表现形式了,就是我们根据这些数据怎么样来形象化的表现当时网络的状态?从数据特征可以看出,ping的时候只有四条ping语句,所以这个数据只有0,25,50,75,l00

五种形式,当然你要让它多ping几条也可以,只要在c.bat里面的ping代码加上一nl0,这样程序就会pingl0条了.这里我们就用这四条的五种形式来表示吧.0丢包率就表示网络畅通;25丢包率就是四条中丢了一条,需要注意;50的丢包率就要特别注意了,网络虽然还是通的,但是肯定有异常了;75这个丢包率就表示网络物理上还是通

的,但是已经不能传送大数据包了,想当于

已经断了;100就表示完全断了.然后我只

做了两张gif图片:表示网络正常;●表示

网络异常.丢包率为0,那么就是网络正

常,显示;而丢包率为25,50,75,l00,则表示网络异常,显示●.那么在

25,50,75,l00之间怎么来区分他们的

状态等级呢?25呢需要网管注意一下,就用

●表示提醒就可以了;50呢需要特别注意

了,还要查看一下是个别现象还是一直这

样,那么在用红点表示的时候,我还增加了

个信使服务告警,同样制作一个b.b at文

件,里面写上这样的代码:netsend172.26.64.183发现网络异

常!请迅速查看!lla005-7-25#}Ml22蠢墟慵况l孵艘{状啦基包翠謦备螭剐}鲁洼嘲般I状撤骤憾攀}I蒋龋捌l啊}蝴l搠《黪}o{lI,2.2.矾.1o矾搬I

奠O魁1窘.25.50l4.11l

捌老嗡llo,12?23*l28?I陵搬l_■100一1蒲.2e.206l2_.l0.liIT2.掘帆?29;l{冀{垮懈i………l2l-曩{0-{172?2瓢"?31{}-埘辩露10lI窘?2e?墨T-2I一

12o"{o-{ll,2?2064?22{辩Itlil100-lI72?25?eT-212l1卅li0-{1lT2.25?64.32}幕a孵潞10*lI,2e?eT-215l硼Il 《穆{0-l}I72?25矾.34}-f;向蹙堪OlI'2?2e?87lt

1T|警

一lo●{IlT2?25.54.23硅孵黪O*lI2-.e.5713

1础

PQ.hosting全线9折,1Gbps带宽不限流量VPS/€3/月,全球11大机房可选

Hostadvice主机目录对我们的服务进行了测试,然后给PQ.hosting颁发了十大WordPress托管奖。为此,宣布PQ.Hosting将在一周内进行折扣优惠,购买和续订虚拟服务器使用优惠码:Hostadvice ,全部优惠10%。PQ.hosting,国外商家,成天于2019年,正规公司,是全球互联网注册商协会 RIPE 的成员。主要是因为提供1Gbps带宽、不限流量的基于KVM虚拟的V...

Sparkedhost($8/月)美国迈阿密AMD Ryzen高性能VPS;免费100G高防

sparkedhost怎么样?sparkedhost主机。Sparkedhost于2017年7月注册在美国康涅狄格州,2018年收购了ClynexHost,2019年8月从Taltum Solutions SL收购了The Beast Hosting,同年10月从Reilly Bauer收购了OptNode Hosting。sparkedhost当前的业务主要为:为游戏“我的世界”提供服务器、虚拟...

PIGYUN:美国联通CUVIPCUVIP限时cuvip、AS9929、GIA/韩国CN2机房限时六折

pigyun怎么样?PIGYunData成立于2019年,2021是PIGYun为用户提供稳定服务的第三年,目前商家提供香港CN2线路、韩国cn2线路、美西CUVIP-9929、GIA等线路优质VPS,基于KVM虚拟架构,商家采用魔方云平台,所有的配置都可以弹性选择,目前商家推出了七月优惠,韩国和美国所有线路都有相应的促销,六折至八折,性价比不错。点击进入:PIGYun官方网站地址PIGYUN优惠...

网络监控程序为你推荐
kaixin001.com耍开心网的具体步骤有哪些?比肩工场比肩夺财,行官杀制比是什么意思?seo优化工具SEO优化神器有什么比较好的?百度关键词分析关键词怎么分析?ip在线查询通过对方的IP地址怎么样找到他的详细地址?125xx.com高手指教下,www.fshxbxg.com这个域名值多少钱?99nets.com制作网络虚拟证件的网站 那里有呀?baqizi.cc孔融弑母是真的吗?javlibrary.comSSPD-103的AV女主角是谁啊1!!!!求解javlibrary.comImage Library Sell Photos Digital Photos Photo Sharing Photo Restoration Digital Photos Photo Albums
vps虚拟主机 网站域名备案查询 免费申请域名 百度云100as 日本空间 本网站服务器在美国 促正网秒杀 宁波服务器 网站木马检测工具 秒杀汇 鲁诺 网游服务器 安徽双线服务器 华为云盘 镇江高防 restart windowsserverr2 性能测试工具 香港云主机 电脑主机声音大 更多