心静自然凉~

一杯清茶、二盏淡酒、邀三五知己,诉七八句心语,道九分珍重,怀十分真诚,或伤感、或快乐,无现实之隔阂 、无世俗之势利,如此人生,不亦乐乎!
posts - 72, comments - 8, trackbacks - 0, articles - 14

网络流量监控程序

Posted on 2007-12-19 21:53 Leo.Zhu 阅读(554) 评论(1)  编辑 收藏 网摘

先传一个图片上来吧。


实现方法 :

这个程序的实现的方法主要使用WMI的方式,动态的获取WMI中的资料。并计算得出结果显示到界面中。


主要使用的WMI的类是:Win32_PerfRawData_Tcpip_NetworkInterface,Win32_NetworkAdapter

先通过Win32_NetworkAdapter 获取到计算机中的所有的网络适配器的名称。然后选择不同的名称后,动态的获取底层的资料。

获取计算机上适配器的方法如下:

IList<Win32_NetworkAdapter> NetwordItems = null;
NetworkAdapter NA = null;
NA = new NetworkAdapter(ComputerName);
NetwordItems = NA.SelectAll();

foreach (Win32_NetworkAdapter item in NetwordItems)
{
string s = item.AdapterType;
if (s != null)
{
if (item.ServiceName == "PptpMiniport")
{
continue;
}
UpNetItems(item.NetConnectionID,item.Name);
}
}

计算网速的主要算法如下:

pni.m_where = " where Name = '" + result + "'";
NetList.Clear();
NetList = pni.SelectAll();
Win32_PerfRawData_Tcpip_NetworkInterface item = NetList[0] as Win32_PerfRawData_Tcpip_NetworkInterface;

float CounterValue1 = (float)item.BytesReceivedPersec;
float upv1 = (float)item.BytesSentPersec;
float TimeValue1 = (float)item.Timestamp_PerfTime;
float TimeBase = (float)item.Frequency_PerfTime;
System.Threading.Thread.Sleep(500);

NetList.Clear();
NetList = pni.SelectAll();
item = NetList[0] as Win32_PerfRawData_Tcpip_NetworkInterface;

float CounterValue2 = (float)item.BytesReceivedPersec;
float upv2 = (float)item.BytesSentPersec;

float TimeValue2 = (float)item.Timestamp_PerfTime;

if (TimeValue2 - TimeValue1 == 0)
{ }
else
{
float downs = (CounterValue2 - CounterValue1) / ((TimeValue2 - TimeValue1) / TimeBase) / 1024;
float up = (upv2 - upv1) / ((TimeValue2 - TimeValue1) / TimeBase) / 1024;
UpdataValue(downs);
UpdataValue2(up);


}


这个程序中使用到一个EasyWMI的dll,这个dll中包括了所有WMI的定义。这个可以到codeProject 搜索一下 下载。

WMI的功能很强大,几乎所有的计算机上的信息都可以通过这个查到。很方便开发一些性能监控等程式。以后有时间准备写一个使用WMI实现计算机监控管理的程序来。

不过最近一直忙着用vc写的一个带UI的exe 的Com的程序。最近一段时间应该是没有什么时间了。


很晚了, 睡觉啦




Feedback

#1楼    回复  引用    

2008-11-03 16:09 by yang simon [未注册用户]
能否把你程序的整个源码发给我.
最近也在学这块.

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-01-11 00:35 编辑过
Google站内搜索

相关文章:

相关链接: