捕获VPN使用情况统计
-
05-09-2019 - |
题
我们正在使用NetworkInterface.GetIPv4Statistics()在.NET 2.0监视网络接口的使用统计信息。这是未报告过其VPN通信被隧道连接正确的统计。相反 - 在Cisco VPN客户端的情况下 - 使用只是归因于新的网络界面,看起来就像一个以太网连接
Windows本身(Vista中,至少)正确添加VPN统计实际的物理接口,所以观看原始连接的“状态”对话框中显示正确的字节数。然而,在.NET中调用的结果不合并在一起的流量。
有没有办法到VPN连接返回到其上它正在隧道的网络连接相关联?如果做不到这一点,没有人知道正在使用的API的状态对话框来获取正确的统计?
目前我们不必手动检测看起来像他们的VPN连接,并且它们的使用添加到任何其他连接处于活动状态,而这似乎并不像一个强大的解决方案的时刻。
解决方案 3
作为罗布表明,答案在于内WMI。 Win32_PerfFormattedData_RemoteAccess_RasPort
似乎正是Windows自身使用 - 数字是用于字节相同,字节,该VPN是运行还是不
我与测试:
static class Program
{
static void Main()
{
var query = new WqlEventQuery("__InstanceModificationEvent", TimeSpan.FromSeconds(1),
"TargetInstance ISA 'Win32_PerfFormattedData_RemoteAccess_RasPort' AND TargetInstance.BytesReceived > 0");
var watcher = new ManagementEventWatcher(query);
watcher.EventArrived += EventArrived;
watcher.Start();
Console.ReadLine();
}
static void EventArrived(object sender, EventArrivedEventArgs e)
{
var mo = e.NewEvent["TargetInstance"] as ManagementBaseObject;
Console.WriteLine("{0:#,0}: {1:#,0} bytes sent, {2:#,0} bytes received", mo["Name"], mo["BytesTransmitted"], mo["BytesReceived"]);
}
}
其他提示
下面是在Delphi编写的程序(具有完整的源和解释),这将有助于您收集网络信息,包括VPN数据。这是通过使用开源印组件的,它也可用于用C#。
我建议通过源浏览,你会找到确切的Windows API调用它使。它在很大程度上依赖于IP帮助API( IPHLPAPI 一>)。
如果您正在寻找C#唯一的例子,我建议你做一些谷歌,荷兰国际集团的“C#和IPHLPAPI。”
此致
替代文字的http://z.about的.com / d /的Delphi / 1/0 / K / 2 / 112903_2.gif
我要检查,当我去上班,看看我的配置是什么样子。
一两件事,思科VPN确实是,如果配置,禁用分离隧道。这是什么意思是,你是从连接到VPN的连接访问你的本地子网阻止。
我可以看到这个问题的方法,就是当我的以太网连接配置了IP地址,但没有默认网关。
假设你确定VPN连接,该网关-less连接将是你的其他的连接。
此外,你有没有看着任何WMI类。思科VPN可以与或许WMI类交互。