我们正在使用 .NET 2.0 中的 NetworkInterface.GetIPv4Statistics() 来监视网络接口的使用统计信息。这不会报告 VPN 流量通过隧道传输的连接的正确统计信息。相反,对于 Cisco VPN 客户端,其使用仅归因于看起来像以太网连接的新网络接口。
Windows 本身(至少是 Vista)将 VPN 统计数据正确添加到实际物理接口,因此查看原始连接的“状态”对话框会显示正确的字节计数。但是,.NET 中的调用结果不会将流量合并在一起。
有没有办法将 VPN 连接关联回其通过隧道传输的网络连接?如果做不到这一点,有谁知道状态对话框正在使用哪个 API 来检索正确的统计信息?
目前,我们必须手动检测看起来像是 VPN 的连接,并将其使用情况添加到任何其他活动连接中,这似乎不是一个可靠的解决方案。
这是用Delphi编写的程序 http://delphi.about.com/od/fullcodeprojects/l/aa112903a.htm(带有完整来源和解释)将帮助您收集网络信息,包括 VPN 数据。这是使用开源 Indy 组件 http://www.indyproject.org/Sockets/index.EN.aspx,它也可与 C# 一起使用。
我建议浏览源代码,您将找到它所进行的确切 Windows API 调用。它严重依赖 IP Helper API (IPHlpApi http://msdn.microsoft.com/en-us/library/aa366073(VS.85).aspx).
如果您正在寻找仅 C# 的示例,我建议您在 google 上搜索“C# 和 IpHlpApi”。
Regards
替代文本http://z.about.com/d/delphi/1/0/k/2/112903_2.gif http://z.about.com/d/delphi/1/0/k/2/112903_2.gif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)