如何确定哪个网络适配器连接到Internet

我正在用C#编写一个程序,需要监控当前正在使用的互联网带宽量,以便在互联网使用率较低时进行后台上传。 如何自动确定哪个网络适配器是连接到互联网的?

当我在阅读此页面时 ,我找到了GetBestInterface函数,最后跟踪了MSDN的链接。 我能够用它来找到连接到互联网的适配器

检查路由表并查找具有默认路由(到0.0.0.0的路由)的接口 – 这是连接到更广阔世界(如果有)的接口。

请参阅此处,了解有关如何监控VB.NET中使用的带宽的类似问题,但其理念是相同的! 这是另一个检查互联网连接的最快方法。

希望这会有所帮助,最好的问候,汤姆。

您可以使用WMI查询所有适配器并查看连接的适配器。
本文将向您展示如何在VB.Net中执行此操作(非常容易转移到C#)。

适配器可以通过多种方式显示为“连接到互联网”。 相反,它可能“无法连接到互联网”并仍然可以连接。

像生活中的许多事情一样,“布丁的证据就在吃”如果你想知道你是否有联系,你需要尝试与某事交谈。

我喜欢time.gov,因为它返回包含当前时间的一小部分XML,因此您可以确保实际连接到网络而不是获取某种缓存数据或重定向到强制网络门户。

只需循环访问适配器,看看哪些实际上有连接。