2010-01-31 94 views
6

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

+0

检查这个问题http://stackoverflow.com/questions/515436/how-to-get-internet-ip/515449 – 2010-01-31 19:32:59

+0

多个适配器可以连接到互联网。 (例如,同一台机器上的有线和无线连接。) – Joe 2010-01-31 19:47:14

回答

4

我结束了,当我在读this page下面的链接,MSDN,我发现了GetBestInterface功能。我能够使用它找到连接到互联网的适配器

3

您可以使用WMI查询所有适配器并查看哪个适配器已连接。
This article告诉你如何在VB.Net中完成它(非常容易转移到C#)。

3

here对于如何监控使用,VB.NET带宽上过类似的问题,但理念是一样的! Here是另一个问题,是检查互联网连接的最快方法。

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

3

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

0

有多种方式的适配器可能会显示为“连接到Internet”时,它不是。相反,它可能“不能连接到互联网”并仍然连接。

就像生活中许多事情,“布丁的证明是在吃”如果你想知道,如果你连接,你需要试着跟一些东西。

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

只是通过适配器循环,看看哪些实际上连接。