如何实现网络流量的实时监控?

Koalar 2003-02-16 08:03:34
经常见到这样的工具,可以监视每个网卡的吞吐率,或者再细致一点可以监视每个网卡基于各种协议的吞吐率,不知道这样的程序如何开发?
...全文
197 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sw0rd2 2003-02-19
  • 打赏
  • 举报
回复
用GetIfEntry()函数可以获得网卡流量信息。

MIB_IFROW ifMib;
ifMib.dwIndex = 0; // 如果你的网卡是第一个网络接口。
GetIfEntry(&ifMib); // 调用完毕后,就会将ifMib中的其它成员数据添好了

ifMib结构
typedef struct _MIB_IFROW {
WCHAR wszName[MAX_INTERFACE_NAME_LEN];
DWORD dwIndex; // index of the interface
DWORD dwType; // type of interface
DWORD dwMtu; // max transmission unit
DWORD dwSpeed; // speed of the interface
DWORD dwPhysAddrLen; // length of physical address
BYTE bPhysAddr[MAXLEN_PHYSADDR]; // physical address of adapter
DWORD dwAdminStatus; // administrative status
DWORD dwOperStatus; // operational status
DWORD dwLastChange; // last time operational status changed
DWORD dwInOctets; // octets received
DWORD dwInUcastPkts; // unicast packets received
DWORD dwInNUcastPkts; // non-unicast packets received
DWORD dwInDiscards; // received packets discarded
DWORD dwInErrors; // erroneous packets received
DWORD dwInUnknownProtos; // unknown protocol packets received
DWORD dwOutOctets; // octets sent
DWORD dwOutUcastPkts; // unicast packets sent
DWORD dwOutNUcastPkts; // non-unicast packets sent
DWORD dwOutDiscards; // outgoing packets discarded
DWORD dwOutErrors; // erroneous packets sent
DWORD dwOutQLen; // output queue length
DWORD dwDescrLen; // length of bDescr member
BYTE bDescr[MAXLEN_IFDESCR]; // interface description
} MIB_IFROW,*PMIB_IFROW;
pepsi1980 2003-02-19
  • 打赏
  • 举报
回复
http://www.vchelp.net/vchelp/archive.asp?type_id=44&class_id=1&cata_id=5&article_id=150
下有个网络监控软件源代码VC,可以看看
woainihaha 2003-02-17
  • 打赏
  • 举报
回复
好象很复杂,关注!!
UP
zhutaozhi53 2003-02-16
  • 打赏
  • 举报
回复
up

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧