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

网络监控程序  时间: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础

易探云:买香港/美国/国内云服务器送QQ音乐绿钻豪华版1年,价值180元

易探云产品限时秒杀&QQ音乐典藏活动正在进行中!购买易探云香港/美国云服务器送QQ音乐绿钻豪华版1年,价值180元,性价比超级高。目前,有四大核心福利产品推荐:福利一、香港云服务器1核1G2M,仅218元/年起(香港CN2线路,全球50ms以内);福利二、美国20G高防云服务器1核1G5M,仅336元/年起(美国BGP线路,自带20G防御);福利三、2G虚拟主机低至58.8元/年(更有免费...

HostYun(月18元),CN2直连香港大带宽VPS 50M带宽起

对于如今的云服务商的竞争着实很激烈,我们可以看到国内国外服务商的各种内卷,使得我们很多个人服务商压力还是比较大的。我们看到这几年的服务商变动还是比较大的,很多新服务商坚持不超过三个月,有的是多个品牌同步进行然后分别的跑路赚一波走人。对于我们用户来说,便宜的服务商固然可以试试,但是如果是不确定的,建议月付或者主力业务尽量的还是注意备份。HostYun 最近几个月还是比较活跃的,在前面也有多次介绍到商...

华为云年中聚惠618活动,新用户专区,云服务器低至88元/年,3年仅580.98元,热销抢购中,最后2天!

华为云怎么样?华为云用在线的方式将华为30多年在ICT基础设施领域的技术积累和产品解决方案开放给客户,致力于提供稳定可靠、安全可信、可持续创新的云服务,做智能世界的“黑土地”,推进实现“用得起、用得好、用得放心”的普惠AI。华为云作为底座,为华为全栈全场景AI战略提供强大的算力平台和更易用的开发平台。本次年终聚惠618活动相当给力,1核2G内存1m云耀云服务器仅88元/年起,送主机安全基础版套餐,...

网络监控程序为你推荐
硬盘工作原理硬盘的工作原理是什么?地图应用用哪个地图导航最好最准巨星prince去世有几位好莱坞巨星死在2016年陈嘉垣电视剧《反黑》里面,雷太太女儿扮演者是谁?125xx.com高手指教下,www.fshxbxg.com这个域名值多少钱?ip查询器查看自己IP的指令kb123.net股市里的STAQ、NET市场是什么?菊爆盘请问网上百度贴吧里有些下载地址,他们就直接说菊爆盘,然后后面有字母和数字,比如dk几几几的,baqizi.cc誰知道,最近有什麼好看的電視劇www.toutoulu.com外链方案到底应该怎么弄呢
老域名全部失效请记好新域名 仿牌空间 cpanel主机 56折 nerd 好看的留言 tk域名 湖南服务器托管 100m免费空间 linux空间 183是联通还是移动 北京双线 速度云 windowsserver2008 最新优惠 magento主机 qq空间打开很慢 cpu使用率过高怎么办 留言板 ddos攻击小组 更多