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

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

青云互联:香港安畅CN2弹性云限时首月五折,15元/月起,可选Windows/可自定义配置

青云互联怎么样?青云互联是一家成立于2020年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、韩国服务器、香港服务器、美国云服务器,香港安畅cn2弹性云限时首月五折,15元/月起;可选Windows/可自定义配置,让您的网站高速、稳定运行。点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联香港云服务器活动...

RackNerd :美国大硬盘服务器促销/洛杉矶multacom数据中心/双路e5-2640v2/64G内存/256G SSD+160T SAS/$389/月

大硬盘服务器、存储服务器、Chia矿机。RackNerd,2019年末成立的商家,主要提供各类KVM VPS主机、独立服务器和站群服务器等。当前RackNerd正在促销旗下几款美国大硬盘服务器,位于洛杉矶multacom数据中心,亚洲优化线路,非常适合存储、数据备份等应用场景,双路e5-2640v2,64G内存,56G SSD系统盘,160T SAS数据盘,流量是每月200T,1Gbps带宽,配5...

云如故枣庄高防(49元)大内存2H2G49元8H8G109元

云如故是一家成立于2018年的国内企业IDC服务商,由山东云如故网络科技有限公司运营,IDC ICP ISP CDN VPN IRCS等证件齐全!合法运营销售,主要从事自营高防独立服务器、物理机、VPS、云服务器,虚拟主机等产品销售,适合高防稳定等需求的用户,可用于建站、游戏、商城、steam、APP、小程序、软件、资料存储等等各种个人及企业级用途。机房可封UDP 海外 支持策略定制 双层硬件(傲...

网络监控程序为你推荐
国家网络安全部网络安全法中网络运行安全规定,国家实行什么制度?编程小学生惊库克大家觉得VIPCODE少儿编程怎么样?特朗普取消访问丹麦特朗普首次出访为什么选择梵蒂冈sonicchatwe chat和微信区别安徽汽车网中国汽车十大品牌留学生认证留学生前阶段双认证认证什么内容?比肩工场比肩成局 什么意思丑福晋谁有好看的言情小说介绍下同一ip网站最近我们网站老是出现同一个IP无数次的进我们网站,而且是在同一时刻,是不是被人刷了?为什么呀?同ip站点同IP做同类站好吗?
英文域名 网站空间购买 中文域名 香港主机租用 vps推荐 3322免费域名 怎样申请域名 腾讯云盘 云网数据 国内免备案主机 全球付 国外idc bash漏洞 godaddy支付宝 gateone 万网优惠券 css样式大全 台湾谷歌网址 100m免费空间 阿里云浏览器 更多