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

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

IMIDC日本多IP服务器$88/月起,E3-123x/16GB/512G SSD/30M带宽

IMIDC是一家香港本土运营商,商家名为彩虹数据(Rainbow Cloud),全线产品自营,自有IP网络资源等,提供的产品包括VPS主机、独立服务器、站群独立服务器等,数据中心区域包括香港、日本、台湾、美国和南非等地机房,CN2网络直连到中国大陆。目前主机商针对日本独立服务器做促销活动,而且提供/28 IPv4,国内直连带宽优惠后每月仅88美元起。JP Multiple IP Customize...

2021年7月最新洛杉矶CN2/香港CN2 vps套餐及搬瓦工优惠码 循环终身优惠6.58%

搬瓦工怎么样?2021年7月最新vps套餐推荐及搬瓦工优惠码整理,搬瓦工优惠码可以在购买的时候获取一些优惠,一般来说力度都在 6% 左右。本文整理一下 2021 年 7 月最新的搬瓦工优惠码,目前折扣力度最大是 6.58%,并且是循环折扣,续费有效,可以一直享受优惠价格续费的。搬瓦工优惠码基本上可能每年才会更新一次,大家可以收藏本文,会保持搬瓦工最新优惠码更新的。点击进入:搬瓦工最新官方网站搬瓦工...

CloudCone:$17.99/年KVM-1GB/50GB/1TB/洛杉矶MC机房

CloudCone在月初发了个邮件,表示上新了一个系列VPS主机,采用SSD缓存磁盘,支持下单购买额外的CPU、内存和硬盘资源,最低年付17.99美元起。CloudCone成立于2017年,提供VPS和独立服务器租用,深耕洛杉矶MC机房,最初提供按小时计费随时退回,给自己弄回一大堆中国不能访问的IP,现在已经取消了随时删除了,不过他的VPS主机价格不贵,支持购买额外IP,还支持购买高防IP。下面列...

网络监控程序为你推荐
bbs.99nets.com怎么制作RO单机百度关键词价格查询如何查到推广关键词的价钱?杨丽晓博客杨丽晓哪一年出生的?菊爆盘请问网上百度贴吧里有些下载地址,他们就直接说菊爆盘,然后后面有字母和数字,比如dk几几几的,dadi.tv智能网络电视smartTV是什么牌子梦遗姐昨晚和姐姐和她朋友一起吃晚饭,我们都喝了酒,我迷糊着回到家的,早上我回想起我好像发生关系射过,会不会是我姐姐,如果是这样我怎么办龚如敏请问这张图片出自哪里?盗车飞侠侠盗飞车罪恶都市全部秘籍ps手柄版的xyq.cbg.163.com梦幻西游藏宝阁怎么开通怎么用红玉头冠wow里面达拉然那个鼎鼎有名的佛罗佐的头部是什么啊?就是三颗冰晶的那个,我记得是可以得到的、因为看
网站空间域名 ssh帐号 云鼎网络 嘟牛 国外在线代理 qingyun 万网主机管理 lick 云服务是什么意思 免费主页空间 hdsky forwarder webmin 服务器机柜 服务器是什么意思 ping值 远程登录 德国代理 vpsaa 海尔t68驱动 更多