加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 如何找出连接到互联网的NIC?

发布时间:2020-12-14 01:35:54 所属栏目:Windows 来源:网络整理
导读:请考虑以下设置: 具有LAN接口和WiFi接口的 Windows PC(任何新笔记本电脑的标准).每个接口可能与网络连接或断开.我需要一种方法来确定哪个适配器是连接到互联网的适配器 – 特别是,如果它们都连接到不同的网络,一个连接到互联网,一个没有. 我目前的解决方案
请考虑以下设置:
具有LAN接口和WiFi接口的 Windows PC(任何新笔记本电脑的标准).每个接口可能与网络连接或断开.我需要一种方法来确定哪个适配器是连接到互联网的适配器 – 特别是,如果它们都连接到不同的网络,一个连接到互联网,一个没有.

我目前的解决方案涉及使用IPHelper的“GetBestInterface”功能并为其提供IP地址“0.0.0.0”.

您是否有任何其他解决方案可能会对此问题提出建议?

根据一些答案,让我详细说明:

>我需要这个,因为我有一个产品必须选择要绑定的适配器.我无法控制网络的设置或产品运行的主机,所以我需要一个尽可能强大的解决方案,尽可能少的假设.
>我需要在代码中执行此操作,因为这是产品的一部分.

@Chris Upchurch:这让我依赖google.com(通常不是问题)以及任何可能安装允许ping的个人防火墙.

@Till:就像Steve Moon说的那样,依赖适配器的地址是有点冒险的,因为你对内部网络设置做了很多假设.

@Steve Moon:看一下路由表听起来是个好主意,但我不是自己应用路由逻辑,而是尝试使用上面描述的“GetBestInterface”.我相信它应该做的正是你在答案中概述的内容,但我并不确定.我不愿意实现自己的“路由逻辑”的原因是,如果我使用由更多“硬核”网络人员编写和测试的库/ API,那么我错误的机会就会出错.

解决方法

从技术上讲,没有“连接到互联网”.真正的问题是,哪个接口可以路由到所需的地址.现在,您正在查询“默认路由” – 如果没有到目的地的特定路由,则应用该路由.但是,你忽略了任何具体的路线.

幸运的是,对于99.9%的家庭用户来说,这就是诀窍.他们不太可能有很多路由表,GetBestInterface会自动更喜欢有线无线 – 所以你应该很好.为你搞砸了的.1%的案例投入覆盖选项,并将其称为一天.

但是,对于企业用途,您应该将GetBestInterface用于特定目的地 – 否则,如果有人与您的目的地在同一个LAN上,您将遇到问题(这意味着您应该采用“内部”接口,而不是“外部” )或者具有到目的地的特定路线(例如,我的内部网络可以与您的目的地网络对等).

然后,我不确定你打算用这个适配器“连接到互联网”做什么,所以这可能不是什么大问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读