我想使用 Wifi 和 LAN 连接在设备上运行一系列测试。我有两张网卡,一张是WiFi,一张是有线。该设备具有可通过两个网络接口访问的单个 IP 地址。有没有办法保证我的机器使用特定的网络接口,以便我可以通过有线连接运行所有测试,然后通过 Wifi 连接运行所有测试?
请记住,两个连接共享同一子网,因此任一连接都将成功连接到设备。我只是希望能够来回切换并指定我在任何给定时间使用的连接。
我在 .net 上使用 C# 来使用 HttpClient。有没有办法强制 HttpClient 使用特定的网络接口?它似乎会根据 IP 地址自动选择一个,但在这种情况下,有 2 个网络接口可以工作。我需要能够以编程方式来回切换来运行我的自动化测试。
我注意到一种称为“接口指标”的东西,可以通过 IP4 属性高级 TCP/IP 设置手动更改。每次都会使用编号较小的接口吗?有没有办法以编程方式改变这个值?
更多澄清:我没有直接跳转到来回禁用 WiFi NIC 或有线 NIC 的原因是当您禁用 WiFi NIC 时,您会断开它所连接的设备,并且当您启用它时它不会自动重新连接。 (即使您说“自动连接”,重新启用后也不会连接)。不过,我找到了一个快速的解决方案。将有线 NIC 上的接口指标设置为低于 WiFi NIC 上的接口指标。然后,只需启用和禁用有线网卡即可。禁用后,系统将使用 WiFi NIC。启用后,系统将使用有线网卡,因为其接口指标设置较低。现在,我只需要弄清楚如何以编程方式启用/禁用有线网卡...
一种方法是更新路由表,将特定 IP 的流量强制发送到特定 NIC。路由表用于决定将流量发送到哪个 NIC。
您可以通过以下几种方式来做到这一点:
1)使用P/Invoke用C#代码更新路由表(参见这里有一个很好的例子 https://pastebin.com/mvLYvgbg,但基本上你是在打电话创建Ip转发条目 https://msdn.microsoft.com/en-us/library/windows/desktop/aa365860(v=vs.85).aspx).
2) Use Process.Start
调用route.exe,例如
route.exe ADD destination_network MASK subnet_mask gateway_ip metric_cost
and
route.exe CHANGE destination_network MASK subnet_mask gateway_ip metric_cost
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)